Code前端首页关于Code前端联系我们

MySQL 和 Oracle 之间的 12 个差异

terry 2年前 (2023-09-26) 阅读数 46 #数据库

1。事务支持

Mysql默认不支持事务,但部分存储系统,如innodb可能支持;而Oracle完全支持事务。

2。并发

什么是并发?并发性是 OLTP(在线事务处理)数据库最重要的特性。并发涉及获取、共享和锁定资源。

Mysql主要使用表锁,锁定资源非常困难。如果一个会话锁定表的时间太长,其他会话将无法更新该表的数据。

Oracle 使用行级锁定,锁定资源更少。它只锁定SQL所需的资源,锁定的是数据库中的数据行,不依赖于索引。因此Oracle对并发的支持要好很多。

3。数据持久化

Oracle保证所有发送的事务都可以恢复,因为Oracle会将操作的发送sql行写入在线日志文件并保存到磁盘,如果数据库或主机异常重启, Oracle重启可以依靠在线日志恢复客户输入的数据。

Mysql 默认会发送 SQL 命令,但如果升级过程中出现数据库或主机重启问题,可能导致数据 丢失

4。事务隔离级别

MySQL 是隔离级别可重复读,而 Oracle 是读已提交序列化事务隔离级别,并且都支持序列化事务。隔离级别,可以达到的最高级别。

5。发送方式

Oracle默认不会自动发送,需要手动发送。 Mysql默认自动提交。

6。逻辑备份

Mysql逻辑备份需要数据加锁来保证备份数据的一致性,影响了DML(Data Manipulation Language)在业务中的通用; Oracle 在逻辑备份期间不会锁定数据。并且备份的数据是一致的。

7。 SQL语句的灵活性

MySQL有很多非常实用、方便的SQL语句扩展,比如功能limit(分页)和insert可以一次插入多行数据; Oracle在这方面感觉比较稳定和传统,Oracle分页是使用伪列和子查询完成的,数据只能逐行插入。

8。数据复制

MySQL:配置复制服务器很简单,但是当主数据库出现问题时,集群数据库可能会丢失一些数据。并且必须手动将plex库切换到主库。

Oracle:传统的推式或拉式数据复制和灾难恢复机制采用两台或更多 Dataguard 计算机。如果主库出现问题,备库可以自动切换到主库,但配置管理比较复杂。

9。分区表和分区索引

MySQL 分区表尚未成熟稳定; Oracle的分区表和分区索引功能非常先进,可以提高用户访问数据库的体验。

10。售后服务和费用

Oracle 会收取费用。如有问题请联系客服; Mysql 是免费且开源的。如果你有问题,你可以自己解决。

11。权限和安全

Oracle的权限和安全概念比较传统,中规中矩; MySQL用户连接到主机,这似乎没有必要。另外,主机和IP更容易被欺骗,从而被利用。

12。性能诊断

Oracle 拥有多种高级性能诊断和调优工具,可以执行许多自动分析和诊断功能。例如awr、addm、sqltrace、tkproof等; MySQL的诊断和调试方法很少,主要是慢查询日志。

作者:《半张饭卡-半个程序员》

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门