对于很多小型项目来说,MySQL数据库可以基本上能够实现各种功能的需求,但是随着数据量的增大,MySQL就渐渐的出现不堪重负的情况,这时就需要用到Oracle数据库,接下来在文章中将为大家具体介绍这两者之间有什么区别,具有一定的参考作用,希望对大家有所帮助。
【推荐课程:MySQL教程】
mysql和oracle的区别
(1)项目性质
MySQL是开源项目,不收任何费用,而Oracle是一款成熟的数据库产品是闭源的同时也是要收费的
(2)对事务的提交
MySQL默认是自动提交,而Oracle默认的是不自动提交,需要用户手动提交,需要在写commit指令或者点击commit按钮
(3)SQL语法不同
MySQL的SQL语法较为灵活,而Oracle的语法较为严格
(4)分页查询
MySQL是直接在SQL语句中写"select... from ...where...limit x, y",有limit就可以实现分页;而Oracle则是需要用到伪列ROWNUM和嵌套查询
(5)对事务的支持
MySQL在innodb存储引擎的行级锁的情况下才可以支持事务,而Oracle则完全支持事务
(6) 保存数据的持久性
MySQL会在数据库更新或者重启之后会丢失数据,而Oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复
(7)线程的不同
MySQL是属于单进程多线程,而Oracle是属于多进程(在Windows下也是单进程)。与Windows操作系统和Linux操作系统间的区别相似,Windows下只能使用一个用户,或者你可以在不同用户之间做切换,而Linux是多用户或者相同用户可以同时连接操作系统。
(8)权限与安全
MySQL的用户与主机有关,而且容易被仿冒主机及ip有可乘之机;而Oracle的权限与安全概念比较传统,中规中矩。
(9)分区表和分区索引
MySQL的分区表还不太成熟稳定,而Oracle的分区表和分区索引功能很成熟,可以提高用户访问db的体验
(10)并发性
MySQL以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。
Oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以Oracle对并发性的支持要好很多。
总结: