mysql和oracle的区别 Oracle和Mysql的区别

Oracle和Mysql是常用的数据库。让我们一起了解这两个数据库之间的差异,以做出最佳选择。
甲骨文
甲骨文公司,原名SDL,由拉里·埃里森和另外两名程序员于1977年创建。他们开发了自己的产品,并在市场上大量销售。1979年,Oracle推出了第一个商用SQL关系数据库管理系统。Oracle是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前,Oracle关系数据库产品的市场份额名列前茅。

mysql和oracle的区别 Oracle和Mysql的区别


文章图片

关系型数据库
MySQL是一个小型关系数据库管理系统,由瑞典MySQL AB公司开发。2008年1月16日被孙公司收购。目前,MySQL广泛应用于互联网上的中小型网站。由于其体积小、速度快、总拥有成本低,尤其是开源,许多中小型网站选择MySQL作为网站数据库,以降低总拥有成本。

mysql和oracle的区别 Oracle和Mysql的区别


文章图片

甲骨文和Mysql的区别
一、并发性
并发性是Oltp数据库最重要的特征,但它涉及资源的获取、共享和锁定。
Mysql:
Mysql主要是表级锁,锁资源很粒度。如果一个会话锁定一个表太长时间,它将使其他会话无法更新该表中的数据。
InnoDB引擎的表虽然可以使用行级锁,但是这种行级锁的机制依赖于表的索引。如果表没有索引或者sql语句没有使用索引,则仍然使用表级锁。
甲骨文:
Oracle使用行级锁,锁定资源的粒度要小得多。它只锁定sql所需的资源,并且锁定在数据库的数据行上,与索引无关。因此,Oracle更好地支持并发。
二.一致
甲骨文:
Oracle支持可序列化隔离级别,可实现最高级别的读取一致性。只有提交每个会话时,其他会话才能看到提交的更改。Oracle通过在撤销表空之间构建多版本数据块来实现读取一致性,
当查询每个会话时,如果相应的数据块发生变化,Oracle将在撤消表空中为此会话构造旧的数据块。
Mysql:
Mysql没有类似于oracle的构造多版本数据块的机制,只支持读提交的隔离级别。当一个会话读取数据时,其他会话不能更改数据,但可以在表的末尾插入数据。
当一个会话更新数据时,应该添加一个排他锁,其他会话不能访问数据。
三.商业
甲骨文长期以来完全支持交易。
Mysql只支持innodb存储引擎行级锁条件下的事务。
第四,数据持久性
神谕
确保提交的数据可以恢复,因为oracle将提交的sql操作行写入在线日志文件,并将其保存在磁盘上。如果数据库或主机出现异常重启,Oracle可以在重启后通过在线日志恢复客户提交的数据。
Mysql:
默认情况下提交Sql语句,但是如果数据库或主机在更新过程中重新启动,数据可能会丢失。
动词 (verb的缩写)提交方法
默认情况下,Oracle不自动提交,用户需要手动提交。
默认自动提交Mysql。
不及物动词逻辑备份
Oracle逻辑备份不锁数据,备份数据一致。
Mysql进行逻辑备份时,需要锁定数据以保证备份数据的一致性,这会影响dml的正常使用。
七.热备份
Oracle有成熟的热备工具rman,在热备时不影响用户使用数据库。即使备份的数据库不一致,您也可以在恢复期间通过归档日志和在线重做日志做出一致的回复。
Mysql:
Myisam的引擎在被Mysql自带的Mysqlhostcopy用于热备用时,需要给表添加读锁,影响dml操作。
innodb的引擎,备份innodb表和索引,但不备份。frm文件。当使用ibbackup进行备份时,会有一个日志文件来记录备份过程中的数据变化,因此不需要锁定表,也不会影响其他用户对数据库的使用。不过这个工具是收费的。

推荐阅读