首页 > 数据库 > MySQL > 正文

oracle与mysql有什么区别

2024-07-24 12:34:16
字体:
来源:转载
供稿:网友
  MySQL和Oracle的区别
  一、宏观上:
 
  1、Oracle是大型的数据库,而Mysql是中小型数据库;Mysql是开源的,Oracle是收费的,且价格昂贵。
 
  2、Oracle支持大并发,大访问量,是OLTP的最好的工具。
 
  3、安装占用的内存也是有差别,Mysql安装完成之后占用的内存远远小于Oracle所占用的内存,并且Oracle越用所占内存也会变多。
 
  二、微观上:
 
  1、对于事务的支持
 
  Mysql对于事务默认是不支持的,只是有某些存储引擎中如:innodb可以支持;而Oracle对于事物是完全支持的。
 
  2、数据的持久性
 
  Oracle保证提交的事务均可以恢复,因为Oracle把提交的sql操作线写入了在线联机日志文件中,保存到磁盘上,如果出现数据库或者主机异常重启,重启Oracle可以靠联机在线日志恢复客户提交的数据。
 
  Mysql默认提交sql语句,但是如果更新过程中出现db或者主机重启的问题,也可能会丢失数据。
 
  3、事务隔离级别
 
  MySQL是repeatable read的隔离级别,而Oracle是read commited的隔离级别,同时二者都支持serializable串行化事务隔离级别,可以实现最高级别的。
 
  读一致性。每个session提交后其他session才能看到提交的更改。Oracle通过在undo表空间中构造多版本数据块来实现读一致性,每个session 查询时,如果对应的数据块发生变化,Oracle会在undo表空间中为这个session构造它查询时的旧的数据块。
 
  MySQL没有类似Oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据
 
  4、提交方式
 
  Oracle默认不自动提交,需要手动提交。Mysql默认自动提交。
 
  5、逻辑备份
 
  Mysql逻辑备份是要锁定数据,才能保证备份的数据是一致的,影响业务正常的DML(数据操纵语言Data Manipulation Language)使用;Oracle逻辑备份时不锁定数据,且备份的数据是一致的。
 
  6、 性能诊断方面
 
  Oracle有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如awr、addm、sqltrace、tkproof等 ;MySQL的诊断调优方法较少,主要有慢查询日志。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表