oracle和mysql区别是什么?

oracle和mysql区别是什么?,第1张

区别如下:

1、主键不同

mysql一般使用自动增长类型,在创建表时只要指定表的主键auto increment,插入记录时,不需要在指定该记录的主键值,mysql将自动增长。oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值赋给该字段即可,只是ORM框架是只要是native主键生成策略即可。

2、数据库的目的不同

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

3、特点不同

oracle是要付费的,是强大的商业化数据库,安全性高,优点一大堆;mysql开源,可以不付费,但是mysql不支持视图,不支持commit-rollback,有效处理commit-rollback将需要完全不同于mysql使用的表布局,mysql也将需要而外的线程在表上做自清工作,而且磁盘用量将更高,而不用它,mysql比几乎所有的其他SQL数据库都快2到4倍,所以小型开发用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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6139072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存