mysql和oracle的区别有:mysql是属于开源项目不收费而oracle需要收费,mysql默认的是自动提交而oracle不是,mysql的语法较为灵活而oracle语法严格等等
对于很多小型项目来说,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对并发性的支持要好很多。
总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。
以上就是mysql和oracle有什么区别的详细内容。