云社区 博客 博客详情

Oracle 数据库、Microsoft SQL Server、MySQL 数据库三种常见数据库的区别深度剖析

白鹿第一帅 发表于 2021-02-09 11:59:29 2021-02-09
2
0

【摘要】 Oracle 数据库、Microsoft SQL Server、MySQL 数据库是我们在项目开发过程中最为常见的三种关系型数据库。下面我们分别从不同的角度对这三种数据库做一个深度剖析和区分,便于我们在开发中更为熟练地选择合适的数据库工具。

前言

Oracle 数据库、Microsoft SQL Server、MySQL 数据库是我们在项目开发过程中最为常见的三种关系型数据库。下面我们分别从不同的角度对这三种数据库做一个深度剖析和区分,便于我们在开发中更为熟练地选择合适的数据库工具。

在这里插入图片描述


一、ORACLE 数据库

在这里插入图片描述

  • Oracle 能在所有主流平台上运行(包括 windows)。

完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持 .oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展 windowsNT 的能力,提供高可用性和高伸缩性的簇的解决方案。如果 windowsNT 不能满足需要,用户可以把数据库移到 UNIX 中。Oracle 的并行服务器对各种 UNIX 平台的集群机制都有着相当高的集成度。oracle 获得最高认证级别的 ISO 标准认证 .oracle 性能最高,保持开放平台下的 TPC-D 和 TPC-C 的世界记录 oracle 多层次网络计算,支持多种工业标准,可以用 ODBC、JDBC、OCI 等网络客户连接。

  • Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。

Oracle 产品采用标准 SQL,并经过美国国家标准技术所(NIST)测试。与 IBM SQL/DS,DB2,INGRES,IDMS/R 等兼容。Oracle 的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在 70 种以上不同的大、中、小型机上;可在 VMS、DOS、UNIX、WINDOWS 等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。提供了多种开发工具,能极大的方便用户进行进一步的开发。Oracle 良好的兼容性、可移植性、可连接性和高生产率使 Oracle RDBMS 具有良好的开放性。

  • Oracle价格是比较昂贵的。

一套正版的 oracle 软件早在 2006 年年底的时候在市场上的价格已经达到了 6 位数。所以如果你的项目不是那种超级大的项目,建议放弃 Oracle。

二、Microsoft SQL Server 数据库

在这里插入图片描述

  • SQL Server 是 Microsoft 推出一套产品,它具有使用方便、可伸缩性好、与相关软件集成程度高等优点,逐渐成为 Windows 平台下进行数据库应用开发较为理想的选择之一。

SQL Server 是目前流行的数据库之一,它已广泛应用于金融,保险,电力,行政管理等与数据库有关的行业。而且,由于其易操作性及友好的界面,赢得了广大用户的青睐,尤其是 SQL Server 与其它数据库,如 Access,FoxPro,Excel 等有良好的 ODBC 接口,可以把上述数据库转成 SQL Server 的数据库,因此目前越来越多的读者正在使用SQL Server。

  • SQL Server 由于是微软的产品,又有着如此强大的功能,所以他的影响力是几种数据库系统中比较大,用户也是比较多的。

它一般是和同是微软产品的 .net 平台一起搭配使用。当然其他的各种开发平台,都提供了与它相关的数据库连接方式。因此,开发软件用 SQL Server 做数据库是一个正确的选择。

三、MySQL 数据库

在这里插入图片描述

  • MySQL不支持事务处理,没有视图,没有存储过程和触发器,没有数据库端的用户自定义函数,不能完全使用标准的 SQL 语法。

MySQL 缺乏 transactions,rollbacks 和 subselects 的功能。如果你计划使用 MySQL 写一个关于银行、会计的应用程序,或者计划维护一些随时需要线性递增的不同类的计数器,你将缺乏 transactions 功能。现有的发布版本的 MySQL下,请不要有任何的这些想法。(MySQL 的测试版 3.23.x 系列现在已经支持 transactions了 )

在非常必要的情况下,MySQL 的局限性可以通过一部分开发者的努力得到克服。在 MySQL 中你失去的主要功能是 subselect 语句,而这正是其它的所有数据库都具有的。换而言之,这个失去的功能是一个痛苦。

  • MySQL 没法处理复杂的关联性数据库功能。

例如,子查询(subqueries),虽然大多数的子查询都可以改写成 join。另一个 MySQL 没有提供支持的功能是事务处理(transaction)以及事务的提交(commit)/撤销(rollback)。一个事务指的是被当作一个单位来共同执行的一群或一套命令。如果一个事务没法完成,那么整个事务里面没有一个指令是真正执行下去的。对于必须处理线上订单的商业网站来说,MySQL 没有支持这项功能,的确让人觉得很失望。但是可以用 MaxSQL,一个分开的服务器,它能通过外挂的表格来支持事务功能。

外键(foreignkey)以及参考完整性限制(referentialintegrity)可以让你制定表格中资料间的约束,然后将约束(constraint)加到你所规定的资料里面。这些 MySQL 没有的功能表示一个有赖复杂的资料关系的应用程序并不适合使用MySQL。当我们说 MySQL不支持外键时,我们指的就是数据库的参考完整性限制-- MySQL 并没有支持外键的规则,当然更没有支持连锁删除(cascadingdelete)的功能。简短的说,如果你的工作需要使用复杂的资料关联,那你还是用原来的 Access 吧。

  • 你在 MySQL 中也不会找到存储进程(storedprocedure)以及触发器(trigger)。

针对这些功能,在 Access 提供了相对的事件进程(eventprocedure)。

  • MySQL+php+apache 三者被软件开发者称为“php黄金组合”。

总结

本文分别给大家介绍了 Oracle 数据库、Microsoft SQL Server、MySQL 三种在项目开发过程中最为常见的关系型数据库。并从不同的角度对这三种数据库做一个深度剖析和区分,便于我们在开发中更为熟练地选择合适的数据库工具。但是随着技术发展和更新的迅速,不同的数据库工具在不同的版本更新之后可能还有较大的功能点变动,大家要学会活学活用!

在这里插入图片描述


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:huaweicloud.bbs@huawei.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 0
点赞
分享文章到微博
分享文章到朋友圈

上一篇:MySQL 学习三:如何完全卸载掉本地 MySQL 数据库步骤小结

下一篇:如何让全世界的人都可以访问你本地的网站?——内网击穿之 HTTP 穿透的使用与案例

评论 (2)


发现

1楼2021-02-09 16:03:49
MySQL不支持事务处理?第一次听说,不懂请不要误人子弟!

白鹿第一帅1楼2021-02-09 18:18:17

您的眼睛是看不到——MySQL 的测试版 3.23.x 系列已经支持 transactions?还是您不认识 transaction 这个单词?
另外:借你的傻楼,MySQL 中的 4 种事务隔离级别和 7 种事务传播行为将在后续的文章中更新,感谢大家!
0/1000

登录后可评论,请 登录注册

评论