狠狠撸

狠狠撸Share a Scribd company logo
Oracle, MySQL Or NoSQL ?
简朝阳

2013/11/17

1

isky000.com
Oracle, MySQL Or NoSQL ?
About me

简朝阳
Oracle ACE Director
ACOUG 核心成员

Blog:http://isky000.com
Twitter:@sky000
Weibo:@简朝阳

2013/11/17

2

isky000.com
Oracle, MySQL Or NoSQL ?
? 背景
NoSQL 争鸣,去 IOE 及去关系型呼声震天

? 产物差异
功能,性能,成本,维护 …

? 场景需求
要求:一致性?可靠性?读写比?事物要求?

? 平衡选择
如何选?

2013/11/17

3

isky000.com
Oracle, MySQL Or NoSQL ?
? 背景
云计算

…

…

信息量飞增

NoSQL争鸣

大数据

关系型?

革命
…

…
SSD

分布式

…

…

X86性能突破
PC 崛起

2013/11/17

4

isky000.com
Oracle, MySQL Or NoSQL ?
? 背景
云计算

…

信息量飞增
大数据

…

去 IOE

NoSQL争鸣
关系型?

IBM
Oracle

…

…

EMC
SSD

分布式

…

…

X86性能突破
PC 崛起

2013/11/17

5

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异
成本
支持

功能

人才

扩展
2013/11/17

性能
(读, 写)

维护
6

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

功能

? Oracle
全才,无论 OLAP 还是 OLTP,无论是锁定机制还是事物支持,无论是
内置函数还是外部可扩展功能,都比较全面

? MySQL
OLTP型选手,但由于缺少 Hash Join,以及分析函数相对较少,所以
OLAP方面功能相对欠缺,但对事务的支持以及锁定机制都比较齐全。

? NoSQL
K/V 型选手,主要提供高效的简单查询,虽然部分NoSQL产物也支持相

对复杂一点的检索,但在事务以及Join方面都未支持,功能最弱

Oracle > MySQL > NoSQL
2013/11/17

7

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

性能 – 写入

? Oracle
需要记录 Redo Log 且保证每次事务都fsync到物理磁盘以保证事务安全,
连续写;数据的写入大多是在内存中完成,后台进程进行内存到磁盘的
定期批量刷新,随机写为主。

? MySQL
InnoDB引擎 与Oracle类似;MyISAM 引擎无事务所以没有事务日志到

磁盘的fsync问题,但由于其表锁的原因,并发稍若。从总体使用经验来
看和 Oracle 相差不大

? NoSQL
在数据存储及日志记录方面的架构及实现优化,使之在写入性能方面较
传统数据库有较大优势

NoSQL > Oracle ≈ MySQL
2013/11/17

8

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

性能 – 简单查询

? Oracle
在高并发场景下,由于其在事务控制实现方面的优势,以及多进程的机
制,显示出了相对明显的优势。

? MySQL
在并发数不是太高的前提下,如8,16,32个并发场景下,相对于
Oracle 没有显示出弱势,甚至部分存储引擎下还有一些优势,但是随着

并发数的增加,就逐步体现出了与 Oracle 的差距,这与其基于线程的机
制也有一定关系。

? NoSQL
至少在我过往的多种测试下,大部分时候的简单查询性能都不如前二者。

Oracle > MySQL > NoSQL
2013/11/17

9

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

性能 – 复杂查询

? Oracle
统计信息涉及的方面非常多,优化器相对于 MySQL 来说也先进很多,
再加上对 Join 方式的全面支持,无论是从功能还是性能角度来说,多表
Join 都是 Oracle 的优势所在。

? MySQL
其查询优化器所能参考的统计信息相对较少,优化器深度也比 Oracle 少

很多,所以在多表 Join 的时候出现执行计划异常并不少见。此外,不支
持 Hash Join 的天生缺陷也让其 Join 能力大打折扣。

? NoSQL
不支持 Join,不具可比性,无疑是最弱的。

Oracle > MySQL > NoSQL
2013/11/17

10

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

扩展能力

? Oracle
Oracle 由于其极高的一致性要求,造成架构上的不少限制。导致其扩展
成本相对高很多。

? MySQL
原生分布式架构的优势在于并发支持,但延时问题一直被广为诟病。所
以大部分场景下是人肉进行分布式拆分,但其Replication特性加上对一

致性的约束相较Oracle弱,使其架构灵活性很高

? NoSQL
大多都原生支持分布式部署架构,具有极好的 Scale Out 能力。

NoSQL > MySQL > Oracle
2013/11/17

11

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

可维护性

? Oracle
这一点上 Oracle 具有非常大的优势,无论是性能跟踪还是常规维护方面,
Oracle都提供了非常丰富的工具和系统。

? MySQL
原生工具相对简单,但由于其开源的特性,有一些第三方开发的工具支
持,比如Percona提供的一套工具(原mktools),但总提仍然比

Oracle 少了很多

? NoSQL
无论是从性能跟踪还是常规维护角度来说,都远不如前二者。

Oracle > MySQL > NoSQL
2013/11/17

12

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

商业支持

? Oracle
商业软件,全套的商业服务支持。
上百本文档手册支持,几乎涵盖所有的内容。

? MySQL
有商业服务支持,但文档相对简单,包含的内容也比较少。

? NoSQL
少有商业支持,文档非常简单,网络资料也相对少很多。

Oracle > MySQL > NoSQL
2013/11/17

13

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

人才环境

? Oracle
发展几十年,具有充足的人才储备,活跃的社区环境。

? MySQL
开源数据库的王者,社区活跃,虽然人才总量常常供不应求,但总体还
是处于良性状态。

? NoSQL
新技术,产物众多,社区活跃度远不如前面二者,处于人才极度匮乏状
态。

Oracle > MySQL > NoSQL
2013/11/17

14

isky000.com
Oracle, MySQL Or NoSQL ?
? 产物差异

软件成本

? Oracle
商业软件,价格昂贵

? MySQL
有开源也有商业版本,但价格较便宜

? NoSQL
开源软件

Oracle > MySQL > NoSQL

2013/11/17

15

isky000.com
Oracle, MySQL Or NoSQL ?
? 场景分析
逻辑
复杂度

一致性
要求

……

数据容量
规模

2013/11/17

并发量
规模

16

isky000.com
Oracle, MySQL Or NoSQL ?
? 平衡选择

功能
成本
扩展

维护

…

2013/11/17

17

…

isky000.com
Oracle, MySQL Or NoSQL ?

Q&A

2013/11/17

18

isky000.com

More Related Content

Oracle my sql-or-nosql

  • 1. Oracle, MySQL Or NoSQL ? 简朝阳 2013/11/17 1 isky000.com
  • 2. Oracle, MySQL Or NoSQL ? About me 简朝阳 Oracle ACE Director ACOUG 核心成员 Blog:http://isky000.com Twitter:@sky000 Weibo:@简朝阳 2013/11/17 2 isky000.com
  • 3. Oracle, MySQL Or NoSQL ? ? 背景 NoSQL 争鸣,去 IOE 及去关系型呼声震天 ? 产物差异 功能,性能,成本,维护 … ? 场景需求 要求:一致性?可靠性?读写比?事物要求? ? 平衡选择 如何选? 2013/11/17 3 isky000.com
  • 4. Oracle, MySQL Or NoSQL ? ? 背景 云计算 … … 信息量飞增 NoSQL争鸣 大数据 关系型? 革命 … … SSD 分布式 … … X86性能突破 PC 崛起 2013/11/17 4 isky000.com
  • 5. Oracle, MySQL Or NoSQL ? ? 背景 云计算 … 信息量飞增 大数据 … 去 IOE NoSQL争鸣 关系型? IBM Oracle … … EMC SSD 分布式 … … X86性能突破 PC 崛起 2013/11/17 5 isky000.com
  • 6. Oracle, MySQL Or NoSQL ? ? 产物差异 成本 支持 功能 人才 扩展 2013/11/17 性能 (读, 写) 维护 6 isky000.com
  • 7. Oracle, MySQL Or NoSQL ? ? 产物差异 功能 ? Oracle 全才,无论 OLAP 还是 OLTP,无论是锁定机制还是事物支持,无论是 内置函数还是外部可扩展功能,都比较全面 ? MySQL OLTP型选手,但由于缺少 Hash Join,以及分析函数相对较少,所以 OLAP方面功能相对欠缺,但对事务的支持以及锁定机制都比较齐全。 ? NoSQL K/V 型选手,主要提供高效的简单查询,虽然部分NoSQL产物也支持相 对复杂一点的检索,但在事务以及Join方面都未支持,功能最弱 Oracle > MySQL > NoSQL 2013/11/17 7 isky000.com
  • 8. Oracle, MySQL Or NoSQL ? ? 产物差异 性能 – 写入 ? Oracle 需要记录 Redo Log 且保证每次事务都fsync到物理磁盘以保证事务安全, 连续写;数据的写入大多是在内存中完成,后台进程进行内存到磁盘的 定期批量刷新,随机写为主。 ? MySQL InnoDB引擎 与Oracle类似;MyISAM 引擎无事务所以没有事务日志到 磁盘的fsync问题,但由于其表锁的原因,并发稍若。从总体使用经验来 看和 Oracle 相差不大 ? NoSQL 在数据存储及日志记录方面的架构及实现优化,使之在写入性能方面较 传统数据库有较大优势 NoSQL > Oracle ≈ MySQL 2013/11/17 8 isky000.com
  • 9. Oracle, MySQL Or NoSQL ? ? 产物差异 性能 – 简单查询 ? Oracle 在高并发场景下,由于其在事务控制实现方面的优势,以及多进程的机 制,显示出了相对明显的优势。 ? MySQL 在并发数不是太高的前提下,如8,16,32个并发场景下,相对于 Oracle 没有显示出弱势,甚至部分存储引擎下还有一些优势,但是随着 并发数的增加,就逐步体现出了与 Oracle 的差距,这与其基于线程的机 制也有一定关系。 ? NoSQL 至少在我过往的多种测试下,大部分时候的简单查询性能都不如前二者。 Oracle > MySQL > NoSQL 2013/11/17 9 isky000.com
  • 10. Oracle, MySQL Or NoSQL ? ? 产物差异 性能 – 复杂查询 ? Oracle 统计信息涉及的方面非常多,优化器相对于 MySQL 来说也先进很多, 再加上对 Join 方式的全面支持,无论是从功能还是性能角度来说,多表 Join 都是 Oracle 的优势所在。 ? MySQL 其查询优化器所能参考的统计信息相对较少,优化器深度也比 Oracle 少 很多,所以在多表 Join 的时候出现执行计划异常并不少见。此外,不支 持 Hash Join 的天生缺陷也让其 Join 能力大打折扣。 ? NoSQL 不支持 Join,不具可比性,无疑是最弱的。 Oracle > MySQL > NoSQL 2013/11/17 10 isky000.com
  • 11. Oracle, MySQL Or NoSQL ? ? 产物差异 扩展能力 ? Oracle Oracle 由于其极高的一致性要求,造成架构上的不少限制。导致其扩展 成本相对高很多。 ? MySQL 原生分布式架构的优势在于并发支持,但延时问题一直被广为诟病。所 以大部分场景下是人肉进行分布式拆分,但其Replication特性加上对一 致性的约束相较Oracle弱,使其架构灵活性很高 ? NoSQL 大多都原生支持分布式部署架构,具有极好的 Scale Out 能力。 NoSQL > MySQL > Oracle 2013/11/17 11 isky000.com
  • 12. Oracle, MySQL Or NoSQL ? ? 产物差异 可维护性 ? Oracle 这一点上 Oracle 具有非常大的优势,无论是性能跟踪还是常规维护方面, Oracle都提供了非常丰富的工具和系统。 ? MySQL 原生工具相对简单,但由于其开源的特性,有一些第三方开发的工具支 持,比如Percona提供的一套工具(原mktools),但总提仍然比 Oracle 少了很多 ? NoSQL 无论是从性能跟踪还是常规维护角度来说,都远不如前二者。 Oracle > MySQL > NoSQL 2013/11/17 12 isky000.com
  • 13. Oracle, MySQL Or NoSQL ? ? 产物差异 商业支持 ? Oracle 商业软件,全套的商业服务支持。 上百本文档手册支持,几乎涵盖所有的内容。 ? MySQL 有商业服务支持,但文档相对简单,包含的内容也比较少。 ? NoSQL 少有商业支持,文档非常简单,网络资料也相对少很多。 Oracle > MySQL > NoSQL 2013/11/17 13 isky000.com
  • 14. Oracle, MySQL Or NoSQL ? ? 产物差异 人才环境 ? Oracle 发展几十年,具有充足的人才储备,活跃的社区环境。 ? MySQL 开源数据库的王者,社区活跃,虽然人才总量常常供不应求,但总体还 是处于良性状态。 ? NoSQL 新技术,产物众多,社区活跃度远不如前面二者,处于人才极度匮乏状 态。 Oracle > MySQL > NoSQL 2013/11/17 14 isky000.com
  • 15. Oracle, MySQL Or NoSQL ? ? 产物差异 软件成本 ? Oracle 商业软件,价格昂贵 ? MySQL 有开源也有商业版本,但价格较便宜 ? NoSQL 开源软件 Oracle > MySQL > NoSQL 2013/11/17 15 isky000.com
  • 16. Oracle, MySQL Or NoSQL ? ? 场景分析 逻辑 复杂度 一致性 要求 …… 数据容量 规模 2013/11/17 并发量 规模 16 isky000.com
  • 17. Oracle, MySQL Or NoSQL ? ? 平衡选择 功能 成本 扩展 维护 … 2013/11/17 17 … isky000.com
  • 18. Oracle, MySQL Or NoSQL ? Q&A 2013/11/17 18 isky000.com