热门文章> 数据库oracle和mysql的区别 >

数据库oracle和mysql的区别

36氪企服点评小编
2021-06-30 17:17
540次阅读

    数据库是按数据结构组织、储存及管理资料的仓库,早在六十多年前,随着资讯科技及市场的发展,尤其是九十年代以后,数据管理已不再仅仅是储存及管理资料,而是由使用者所需的各种数据管理方式。oracle和mysq数据库都是大家熟知的,但是可能大家还是分不清它们两个的区别,下面就让小编为大家介绍数据库oracle和mysql的区别。

数据库oracle和mysql的区别数据库oracle和mysql的区别

数据库oracle和mysql的区别

一、并发性

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

mysql:

    mysql主要使用表级锁,资源锁的粒度非常大,如果session在某个表锁上太久,其他session就不能更新这个表中的数据。尽管InnoDB引擎的表可以使用行级锁,但是这种行级锁的机制依赖于一个表的索引,如果表没有索引,或者sql语句没有使用索引,仍然使用表级锁。

oracle:

    oracle使用行级锁,资源锁粒度小得多,只需锁定sql需要的资源,加锁在数据库中的数据行上,不依赖于索引。因此,oracle对于并发性的支持非常好。

二、一致性

oracle:

    oracle支持隔离级别的serializable,从而达到最高的读取一致性。在每一个session提交之后,其他session才会看到提交的更改。oracle通过构造undo表空间中的多版本数据块来实现读取一致性,每次session查询时,如果相应的数据块改变,oracle将在undo表空间中为这个session构造查询时构建一个旧数据块。

mysql:

    mysql没有类似oracle构造多版本数据块的机制,仅支持隔离级别的readcommited。当一个session读取数据时,其他session不能改变数据,但是可以在最后插入数据。当session更新数据时,添加一个排它的锁定,而其他session不能访问数据。

三、交易

最初,oracle完全支持交易。

mysql只支持innodb存储引擎的行级锁。

四、数据持久性

oracle

    由于oracle将提交的sql操作线写入在线在线日志文件,保证提交的数据都可以被恢复,并保存到磁盘上,若发生数据库或主机异常重启,重启后oracle可考联机日志来恢复客户提交的数据。

mysql:

    缺省提交sql语句,但是如果在更新期间db或主机重启发生问题,可能会丢失数据。

五、提交方式

    oracle默认不自动提交,要求用户手动提交。

    mysql默认情况下为自动提交。

六、逻辑备份

    在逻辑备份时,oracle不会锁定数据,备份的数据是一致的。
    当mysql进行逻辑备份时,要锁定数据,确保备份的数据是一致的,并且会影响正常业务的XML使用。

七、热备份

    oracle有成熟的热备工具rman,可以随时准备,不会影响用户使用数据库。可以通过归档日志和在线重做日志在恢复时保持一致的回复,即使备份的数据库不一致。

mysql:

    myisam的引擎,当使用mysql自带的mysqlhostcopy热备份时,需要对表进行读取,从而影响dml操作。
    innodb的引擎,它备份了innodb的表和索引,但并不备份.frm文件。在使用ibbackup备份时,将有一个记录备份过程中数据更改的日志文件,这样就可以不锁表而不影响其他用户使用数据库。但是这个工具需要付费。
    innobackup是一个与ibbackup相结合的脚本,可以帮助.frm文件备份。

八、扩展sql语句并具有灵活性

    mysql对sql语句有许多非常实用和方便的扩展,比如limit功能,insert可以一次插入多行数据,select一些管理数据可以没有from。

    oracle觉得在这方面更沉稳传统一些。

九、复制

    oracle:既有Published或rain的传统数据复制,也有dataguard的双机或多机容灾机制,主库的问题是,可以自动切换到主库,但是配置管理比较复杂。

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

十、性能诊断

    oracle提供了多种性能诊断调优工具,可以实现许多自动分析、诊断功能。例如awr,addm,sqltrace,tkproof,等等。

    mysql的诊断调优方法很少,主要是缓慢的查询日志。

十一、权限和安全

    mysql的用户与主机相关,感觉没什么意义,而且更容易被仿冒主机和ip所利用。

    oracle的权限和安全概念比较传统,不太规范。

十二、分区表和分区索引

    oracle的区表和分区索引功能已经成熟,能够改善用户访问db的体验。

    mysql的分区表尚未完全稳定。

十三、管理手段

    oracle拥有许多成熟的命令行、图形界面、web管理工具,以及许多第三方管理工具,管理极为方便高效。

    mysql管理工具更少,而且在linux下安装管理工具有时会带有一些复杂性(phpmyadmin,etc)。

    信息社会中对各种信息资源进行充分有效的管理与利用,是进行科学研究与决策管理的前提。在管理信息系统、办公自动化系统、决策支持系统等各类信息系统中,数据库技术是进行科研、决策管理的重要技术手段。以上就是小编为大家介绍的数据库oracle和mysql的区别,希望能够对大家有所帮助。

[免责声明]

文章标题: 数据库oracle和mysql的区别

文章内容为网站编辑整理发布,仅供学习与参考,不代表本网站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时沟通。发送邮件至36dianping@36kr.com,我们会在3个工作日内处理。

相关文章
最新文章
查看更多
关注 36氪企服点评 公众号
打开微信扫一扫
为您推送企服点评最新内容
消息通知
咨询入驻
商务合作