oracle和mysql的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle和mysql的区别相关的知识,希望对你有一定的参考价值。
1、一致性
Oracle :Oracle 支持可序列化的隔离级别,可以达到最高级别的读一致性。每个会话提交后,其他会话可以看到提交的更改。 Oracle通过在undo表空间构造多版本数据块来实现读一致性,在每次会话查询期间,如果相应的数据块发生变化,Oracle 将在 undo 表空间中为会话构造旧的数据块。
mysql:MySQL没有类似于Oracle的多版本数据块构造机制,只支持读提交的隔离级别。当一个会话读取数据时,其他会话不能更改数据,但可以在表的末尾插入数据。会话更新数据时,必须加排他锁,其他会话无法访问数据。
2、数据持久化
Oracle:确保提交的数据可以恢复,因为Oracle将提交的sql操作行写入在线联机日志文件中,并保存在磁盘上。如果数据库或主机出现异常重启,重启后oracle可以通过获取在线在线日志来恢复客户提交的数据。
mysql:sql语句是默认提交的,但是如果更新过程中出现db或者host重启的问题,可能会丢失数据。
3、并发
mysql:MySQL主要基于表级锁,资源锁的粒度非常大。如果某个会话锁定表的时间过长,其他会话将无法更新该表中的数据。虽然 InnoDB 引擎的表可以使用行级锁,但是这种行级锁的机制取决于表的索引。
Oracle:Oracle 使用行级锁。资源锁的粒度要小得多。它只是锁定SQL所需要的资源,并且锁定在数据库中的数据行上,不依赖于索引。所以Oracle对并发的支持要好很多。
4、逻辑备份
Oracle:逻辑备份不锁数据,备份的数据是一致的。
mysql:逻辑备份时数据必须加锁,保证备份的数据一致,影响业务正常使用dml。
参考技术A oracle是收费的,MYSQL是开源的。都是数据库。功能上ORACLE属于商业化大型数据库,付费后能得到较好的服务。MYSQL可以不用付费,但要求支持还是需要付费的。功能上仁者见人,智者见智。个人认为oracle适合安全的,规模较大的需求。规模中等的,功能上要求不是非常复杂的,可以选择mysql.本回答被提问者采纳 参考技术B mysql是中小型数据库 安装后所占资源比较少 有免费版 开放源代码oracle是大型数据库 参考技术C oracle 是企业用的
mysql是小公司用的
以上是关于oracle和mysql的区别的主要内容,如果未能解决你的问题,请参考以下文章