`
526245263
  • 浏览: 7608 次
  • 性别: Icon_minigender_2
  • 来自: 山西
社区版块
存档分类
最新评论

Mysql与Oracle区别

 
阅读更多

Mysql与Oracle区别

    1、Mysql是开源的而Oracle价格非常高,Oracle是大型数据库而Mysql是中小型数据库(Oracle市场占有率达40%,Mysql只有20%左右)

    2、安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。

    3、操作上的一些区别

       1)Mysql一般使用自动增长类型auto increment,Oracle主键一般使用的序列。

       2)MYSQL分页limit,Oracle分页ROWNUM

       3)mysql中的text对应oracle中的clob

       4)字符串链接Oracle是||,mysql是CONCAT(str1,str2,…)

       5)在Oracle里:null 与 ''是等价的

          在MySQL里,null与 ''是完全不同的:NULL是指没有值,而''则表示值是存在的,只不过是个空值

    4、Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理系统、OLAP即联机分析处理)最好的工具。

    5、并发性:

       并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定

       mysql以表级锁为主,对资源锁定的粒度很大。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。

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

    6、一致性:

       oracle支持serializable的隔离级别,可以实现最高级别的读一致性。

       mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。

    7、事务:

       oracle很早就完全支持事务。mysql在innodb存储引擎的行级锁的情况下才支持事务。

    8、事务持久性:

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

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

    9、提交方式:

       oracle默认不自动提交,需要用户手动提交。mysql默认是自动提交。

    10、分区表和分区索引:

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

    11、管理工具:oracle有多种成熟的命令行、图形界面、web管理工具,还有很多第三方的管理工具,管理极其方便高效。mysql管理工具较少,在linux下的管理工具的安装有时要安装额外的包(phpmyadmin, etc),有一定复杂性。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics