- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、MySql 与 Oracle 的差别
并发性
并发性是 oltp 数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。
mysql:
mysql 以表级锁为主,对资源锁定的粒度很大,如果一个 session 对一个表加锁时间过长,会让其他 session 无法更新此表中的数据。虽然 InnoDB 引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql 语句没有使用索引,那么仍然使用表级锁。
oracle:
oracle 使用行级锁,对资源锁定的粒度要小很多,只是锁定 sql 需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以 oracle 对并发性的支持要好很多。
一致性
oracle:
oracle 支持 serializable 的隔离级别,可以实现最高级别的读一致性。每个 session 提交后其他 session 才能看到提交的更改。oracle 通过在 undo 表空间中构造多版本数据块来实现读一致性,每个 session 查询时,如果对应的数据块发生变化,oracle 会在undo 表空间中为这个 session 构造它查询时的旧的数据块。
mysql:
mysql 没有类似 oracle 的构造多版本数据块的机制,只支持 read commited 的隔离级别。一个 session 读取数据时,其他 session 不能更改数据,但可以在表最后插入数据。session 更新数据时,要加上排它锁,其他 session 无法访问数据。
事务
oracle 很早就完全支持事务。
mysql 在 innodb 存储引擎的行级锁的情况下才支持事务。
数据持久性
oracle
保证提交的数据均可恢复,因为 oracle 把提交的 sql 操作线写入了在线联机日志文件中,保持到了磁盘上,如果出现数据库或主机异常重启,重启后oracle 可以考联机在线日志恢复客户提交的数据。
mysql:
默认提交 sql 语句,但如果更新过程中出现 db 或主机重启的问题,也许会丢失数据。
提交方式
oracle 默认不自动提交,需要用户手动提交。mysql 默认是自动提交。
逻辑备份
oracle 逻辑备份时不锁定数据,且备份的数据是一致的。
mysql 逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的dml 使用。
热备份
oracle 有成熟的热备工具 rman,热备时,不影响用户使用数据库。即使备份的数据库不一致,也可以在恢复时通过归档日志和联机重做日志进行一致的回复。
mysql:
myisam 的引擎,用 mysql 自带的 mysqlhostcopy 热备时,需要给表加读锁,影响dml 操作。innodb 的引擎,它会备份 innodb 的表和索引,但是不会备份.frm 文件。用ibbackup 备份时,会有一个日志文件记录备份期间的数据变化,因此可以不用锁表, 不影响其他用户使用数据库。但此工具是收费的。innobackup 是结合 ibbackup 使用的一个脚本,他会协助对.frm 文件的备份。
sql 语句的扩展和灵活性
mysql 对 sql 语句有很多非常实用而方便的扩展,比如 limit 功能,insert 可以一次插入多行数据,select 某些管理数据可以不加 from。
oracle 在这方面感觉更加稳重传统一些。
复制
oracle:既有推或拉式的传统数据复制,也有 dataguard 的双机或多机容灾机制, 主库出现问题是,可以自动切换备库到主库,但配置管理较复杂。
mysql:复制服务器配置简单,但主库出问题时,丛库有可能丢失一定的数据。且需要手工切换丛库到主库。
性能诊断
oracle 有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如awr、addm、sqltrace、tkproof 等
mysql 的诊断调优方法较少,主要有慢查询日志。
权限与安全
mysql 的用户与主机有关,感觉没有什么意义,另外更容易被仿冒主机及ip 有可乘之机。
oracle 的权限与安全概念比较传统,中规中矩。
分区表和分区索引
oracle 的分区表和分区索引功能很成熟,可以提高用户访问 db 的体验。mysql 的分区表还不太成熟稳定。
管理工具
oracle 有多种成熟的命令行、图形界面、web 管理工具,还有很多第三方的管理工具,管理极其方便高效。
mysql 管理工具较少,在 linux 下的管理工具的安装有时要安装额外的包
(phpmyadmin, etc),有一定复杂性。
技术支持
oracle 出问题可以找客服mysq 出问题自己解决
授权
oracle 收费mysq 开源-免费
选择
有钱用建议用 oracle
没钱且能满足需
文档评论(0)