SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

MySQL Scalability Mistakes - OTN
MySQL Scalability Mistakes - OTNMySQL Scalability Mistakes - OTN
MySQL Scalability Mistakes - OTNRonald Bradford
 
The History and Future of the MySQL ecosystem
The History and Future of the MySQL ecosystemThe History and Future of the MySQL ecosystem
The History and Future of the MySQL ecosystemRonald Bradford
 
10x Performance Improvements - A Case Study
10x Performance Improvements - A Case Study10x Performance Improvements - A Case Study
10x Performance Improvements - A Case StudyRonald Bradford
 
Lessons Learned Managing Large AWS Environments
Lessons Learned Managing Large AWS EnvironmentsLessons Learned Managing Large AWS Environments
Lessons Learned Managing Large AWS EnvironmentsRonald Bradford
 
MySQL性能调优最佳实践
MySQL性能调优最佳实践MySQL性能调优最佳实践
MySQL性能调优最佳实践Sky Jian
 
MySQL Backup and Recovery Essentials
MySQL Backup and Recovery EssentialsMySQL Backup and Recovery Essentials
MySQL Backup and Recovery EssentialsRonald Bradford
 
MySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howMySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howBernt Marius Johnsen
 
Monitoring your technology stack with New Relic
Monitoring your technology stack with New RelicMonitoring your technology stack with New Relic
Monitoring your technology stack with New RelicRonald Bradford
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?Norvald Ryeng
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17Alkin Tezuysal
 
Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1Ronald Bradford
 
SQL window functions for MySQL
SQL window functions for MySQLSQL window functions for MySQL
SQL window functions for MySQLDag H. Wanvik
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftChristian Posta
 
Linux and H/W optimizations for MySQL
Linux and H/W optimizations for MySQLLinux and H/W optimizations for MySQL
Linux and H/W optimizations for MySQLYoshinori Matsunobu
 
MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions oysteing
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server DefaultsMorgan Tocker
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターンyoku0825
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesSamuel Terburg
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationKenny Gryp
 

Destacado (20)

MySQL Scalability Mistakes - OTN
MySQL Scalability Mistakes - OTNMySQL Scalability Mistakes - OTN
MySQL Scalability Mistakes - OTN
 
The History and Future of the MySQL ecosystem
The History and Future of the MySQL ecosystemThe History and Future of the MySQL ecosystem
The History and Future of the MySQL ecosystem
 
10x Performance Improvements - A Case Study
10x Performance Improvements - A Case Study10x Performance Improvements - A Case Study
10x Performance Improvements - A Case Study
 
Lessons Learned Managing Large AWS Environments
Lessons Learned Managing Large AWS EnvironmentsLessons Learned Managing Large AWS Environments
Lessons Learned Managing Large AWS Environments
 
MySQL性能调优最佳实践
MySQL性能调优最佳实践MySQL性能调优最佳实践
MySQL性能调优最佳实践
 
MySQL Backup and Recovery Essentials
MySQL Backup and Recovery EssentialsMySQL Backup and Recovery Essentials
MySQL Backup and Recovery Essentials
 
MySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howMySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & how
 
Monitoring your technology stack with New Relic
Monitoring your technology stack with New RelicMonitoring your technology stack with New Relic
Monitoring your technology stack with New Relic
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
 
Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1
 
SQL window functions for MySQL
SQL window functions for MySQLSQL window functions for MySQL
SQL window functions for MySQL
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShift
 
Linux and H/W optimizations for MySQL
Linux and H/W optimizations for MySQLLinux and H/W optimizations for MySQL
Linux and H/W optimizations for MySQL
 
MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server Defaults
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 

Similar a Oracle my sql-or-nosql

浅谈 MySQL 性能调优
浅谈 MySQL 性能调优浅谈 MySQL 性能调优
浅谈 MySQL 性能调优Sky Jian
 
MySQL5.6新功能
MySQL5.6新功能MySQL5.6新功能
MySQL5.6新功能郁萍 王
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLjasonfuoo
 
[译]No sql生态系统
[译]No sql生态系统[译]No sql生态系统
[译]No sql生态系统iammutex
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
4 葉金榮-my sql優化 - 20151219
4 葉金榮-my sql優化 - 201512194 葉金榮-my sql優化 - 20151219
4 葉金榮-my sql優化 - 20151219Ivan Tu
 
SQL Server效能調校
SQL Server效能調校SQL Server效能調校
SQL Server效能調校國昭 張
 
海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)Zhaoyang Wang
 
海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)
海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)
海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)Zhaoyang Wang
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
MySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 ReviewMySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 Review郁萍 王
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年yp_fangdong
 
Ops X Serverless (GCPUG.TW meetup 20180627)
Ops X Serverless (GCPUG.TW meetup 20180627)Ops X Serverless (GCPUG.TW meetup 20180627)
Ops X Serverless (GCPUG.TW meetup 20180627)Earou Huang
 
Alibaba数据库运维最佳实践
Alibaba数据库运维最佳实践Alibaba数据库运维最佳实践
Alibaba数据库运维最佳实践freezr
 
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQL沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQLJingchao Di
 
我们的MySQL
我们的MySQL我们的MySQL
我们的MySQLJinrong Ye
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高mysqlpub
 
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧Poy Chang
 

Similar a Oracle my sql-or-nosql (20)

浅谈 MySQL 性能调优
浅谈 MySQL 性能调优浅谈 MySQL 性能调优
浅谈 MySQL 性能调优
 
MySQL5.6新功能
MySQL5.6新功能MySQL5.6新功能
MySQL5.6新功能
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
No sql
No sqlNo sql
No sql
 
[译]No sql生态系统
[译]No sql生态系统[译]No sql生态系统
[译]No sql生态系统
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
4 葉金榮-my sql優化 - 20151219
4 葉金榮-my sql優化 - 201512194 葉金榮-my sql優化 - 20151219
4 葉金榮-my sql優化 - 20151219
 
SQL Server效能調校
SQL Server效能調校SQL Server效能調校
SQL Server效能調校
 
海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)
 
海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)
海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)
海通证券数据库备份恢复云平台实践(OTN Tour Shanghai 2017)
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
MySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 ReviewMySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 Review
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
Ops X Serverless (GCPUG.TW meetup 20180627)
Ops X Serverless (GCPUG.TW meetup 20180627)Ops X Serverless (GCPUG.TW meetup 20180627)
Ops X Serverless (GCPUG.TW meetup 20180627)
 
Alibaba数据库运维最佳实践
Alibaba数据库运维最佳实践Alibaba数据库运维最佳实践
Alibaba数据库运维最佳实践
 
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQL沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
 
我们的MySQL
我们的MySQL我们的MySQL
我们的MySQL
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
 
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
 

Más de Sky Jian

浅谈数据库优化
浅谈数据库优化浅谈数据库优化
浅谈数据库优化Sky Jian
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构Sky Jian
 
高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践Sky Jian
 
MySQL Explain
MySQL Explain MySQL Explain
MySQL Explain Sky Jian
 
My sql cluster 基础
My sql cluster   基础My sql cluster   基础
My sql cluster 基础Sky Jian
 
高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨Sky Jian
 
Life Of A Dirty Page Inno Db Disk Io
Life Of A Dirty Page Inno Db Disk IoLife Of A Dirty Page Inno Db Disk Io
Life Of A Dirty Page Inno Db Disk IoSky Jian
 
My Sql Performance In A Cloud
My Sql Performance In A CloudMy Sql Performance In A Cloud
My Sql Performance In A CloudSky Jian
 
Oracle Data Buffer Cache
Oracle Data Buffer CacheOracle Data Buffer Cache
Oracle Data Buffer CacheSky Jian
 

Más de Sky Jian (9)

浅谈数据库优化
浅谈数据库优化浅谈数据库优化
浅谈数据库优化
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
 
高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践
 
MySQL Explain
MySQL Explain MySQL Explain
MySQL Explain
 
My sql cluster 基础
My sql cluster   基础My sql cluster   基础
My sql cluster 基础
 
高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨
 
Life Of A Dirty Page Inno Db Disk Io
Life Of A Dirty Page Inno Db Disk IoLife Of A Dirty Page Inno Db Disk Io
Life Of A Dirty Page Inno Db Disk Io
 
My Sql Performance In A Cloud
My Sql Performance In A CloudMy Sql Performance In A Cloud
My Sql Performance In A Cloud
 
Oracle Data Buffer Cache
Oracle Data Buffer CacheOracle Data Buffer Cache
Oracle Data Buffer Cache
 

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