MySQL和Oracle的区别是什么

28次阅读
没有评论

共计 1882 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍了 MySQL 和 Oracle 的区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

一、宏观上:

1、Oracle 是大型的数据库而 Mysql 是中小型数据库;Mysql 是开源的,Oracle 是收费的,且价格昂贵。

2、Oracle 支持大并发,大访问量,是 OLTP 的最好的工具。

3、安装占用的内存也是有差别,Mysql 安装完成之后占用的内存远远小于 Oracle 所占用的内存,并且 Oracle 越用所占内存也会变多。

二、微观上:

1、对于事务的支持

Mysql 对于事务默认是不支持的,只是有某些存储引擎中如:innodb 可以支持;而 Oracle 对于事物是完全支持的。

2、并发性

什么是并发性?并发性是 OLTP(On-Line Transaction Processing 联机事务处理过程) 数据库最重要的特性,并发性涉及到资源的获取、共享与锁定。

Mysql,既支持表锁,也支持行级锁。表锁,对资源锁定的力度很大,如果一个 session 对一个表加锁时间过长,会让其他 session 无法更新此表的数据。

Oracle 使用行级锁,对资源锁定的力度要小很多,只是锁定 sql 需要的资源,并且加锁是在数据库中的数据行上,不依赖于索引。所以 oracle 对并发性的支持要好很多。

3、数据的持久性

Oracle 保证提交的事务均可以恢复,因为 Oracle 把提交的 sql 操作线写入了在线联机日志文件中,保存到磁盘上,如果出现数据库或者主机异常重启,重启 Oracle 可以靠联机在线日志恢复客户提交的数据。

Mysql 默认提交 sql 语句,但是如果更新过程中出现 db 或者主机重启的问题,也可能会丢失数据。

4、事务隔离级别

MySQL 是 repeatable read 的隔离级别,而 Oracle 是 read commited 的隔离级别,同时二者都支持 serializable 串行化事务隔离级别,可以实现最高级别的。

读一致性。每个 session 提交后其他 session 才能看到提交的更改。Oracle 通过在 undo 表空间中构造多版本数据块来实现读一致性,每个 session 查询时,如果对应的数据块发生变化,Oracle 会在 undo 表空间中为这个 session 构造它查询时的旧的数据块。

MySQL 没有类似 Oracle 的构造多版本数据块的机制,只支持 read commited 的隔离级别。一个 session 读取数据时,其他 session 不能更改数据,但可以在表最后插入数据。session 更新数据时,要加上排它锁,其他 session 无法访问数据

5、提交方式

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

6、逻辑备份

Mysql 逻辑备份是要锁定数据,才能保证备份的数据是一致的,影响业务正常的 DML(数据操纵语言 Data Manipulation Language) 使用;Oracle 逻辑备份时不锁定数据,且备份的数据是一致的。

7、sql 语句的灵活性

mysql 对 sql 语句有很多非常实用而方便的扩展,比如 limit 功能 (分页),insert 可以一次插入多行数据;Oracle 在这方面感觉更加稳重传统一些,Oracle 的分页是通过伪列和子查询完成的,插入数据只能一行行的插入数据。

8、数据复制

MySQL:复制服务器配置简单,但主库出问题时,丛库有可能丢失一定的数据。且需要手工切换丛库到主库。

Oracle:既有推或拉式的传统数据复制,也有 dataguard 的双机或多机容灾机制,主库出现问题是,可以自动切换备库到主库,但配置管理较复杂。

9、分区表和分区索引

MySQL 的分区表还不太成熟稳定;Oracle 的分区表和分区索引功能很成熟,可以提高用户访问 db 的体验。

10、售后与费用

Oracle 是收费的,出问题找客服;Mysql 是免费的的,开源的,出问题自己解决。

11、权限与安全

Oracle 的权限与安全概念比较传统,中规中矩;MySQL 的用户与主机有关,感觉没有什么意义,另外更容易被仿冒主机及 ip 有可乘之机。

12、性能诊断方面

Oracle 有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如 awr、addm、sqltrace、tkproof 等;MySQL 的诊断调优方法较少,主要有慢查询日志。

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“MySQL 和 Oracle 的区别是什么”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1882字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)