mysql和oracle的区别有:mysql是属于开源项目不收费而oracle需要收费,mysql默认的是自动提交而oracle不是,mysql的语法较为灵活而oracle语法严格等等

  对于很多小型项目来说,MySQL数据库可以基本上能够实现各种功能的需求,但是随着数据量的增大,MySQL就渐渐的出现不堪重负的情况,这时就需要用到Oracle数据库,接下来在文章中将为大家具体介绍这两者之间有什么区别,具有一定的参考作用,希望对大家有所帮助。

  d510208aea062b024fcb37b5e8f3573b.png

  【推荐课程: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对并发性的支持要好很多。

最后修改:2024 年 07 月 30 日
如果觉得我的文章对你有用,请随意赞赏