MySQL、Oracle、SqlServer的区别(oraclemysqlsqlserver三者的区别)

yumo66610个月前 (05-09)技术文章93

鉴于和数据库打交道日益频繁,遂决定写一篇关于Oracle、SqlServer、MySQL区别的个人观点。
MySQL是大学时的主要学习对象,但刚参加工作时转到了SqlServer,现在主要接触的是Oracle,由于其他数据库(例如DB2等)我并没用过,就不提及了。
事先说明:不一定对,欢迎指正,不吹不黑,不要骂我。  

  • 所属公司:
  • MySQL是由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品;
    Oracle是由美国ORACLE公司(甲骨文)开发的一组核心软件产品;
    SqlServer是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,目前主属Microsoft;  
  • sql语句的灵活性:
  • MySQL对sql语句更灵活,比如:limit功能,insert可以一次插入多行数据,select某些管理数据可以不加from;
    oracle对sql语句的感觉更加稳重传统一些;
    SqlServer对sql语句那绝了,两个成语概括:脚踏实地,步步为营; 
  • 保存数据的持久性:
  • MySQL是在数据库更新或者重启,则会丢失数据;
    Oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复;
    SqlServer从2014之后,也拥有了完全持久和延迟持久特性;  
  • 提交方式:
  • MySQL默认是自动提交(变量autocommit为ON);
    oracle默认不自动提交,需要用户手动提交(commit);
    SqlServer默认是自动提交,用户可手动停止(KILL);
  • 对事务的支持:
  • MySQL在innodb存储引擎的行级锁的情况下才可支持事务;
    Oracle则完全支持事务;
    SqlServer在非自动提交时才可支持事务;  
  • 对并发性的支持:
  • MySQL以表级锁(行级锁依赖于表索引)为主,如果一个session的加锁时间过长,会让其他session无法更新此表中的数据,即“悲观并发控制”
    Oracle使用行级锁,对资源锁定的粒度要小很多,并且不依赖索引,对并发性的支持要好很多,即“乐观并发控制”
    SqlServer在表、表的分页、索引键以及单独的数据行上支配共享锁、排它锁、以及更新锁,简单地说:读取时用共享锁,修改时用排它锁,更新锁则是共享锁和排他锁的一种混合;  
  • 逻辑备份:
  • MySQL逻辑备份时要锁定数据,才能保证备份的数据是一致的,会影响正常业务;
    Oracle逻辑备份时不锁定数据,且备份的数据是一致;
    SqlServer逻辑备份时要锁定数据,才能保证备份的数据是一致的,会影响正常业务; 
  • 复制备份:
  • MySQL复制服务器配置简单,但主库出问题时,丛库有可能丢失一定的数据;
    Oracle既有推或拉式的传统数据复制,也有dataguard的双机或多机容灾机制,还有成熟的热备工具rman,主库出现问题时,可以自动切换备库到主库,但配置管理较复杂
    SqlServer的仅复制备份是独立于常规SQL Server备份序列的SQL Server备份。通常,进行备份会更改数据库并影响其后备份的还原方式。只用于:在不影响数据库总体备份和还原过程的情况下,为特殊目的而进行的备份。  
  • 性能诊断:
  • MySQL的诊断调优方法较少,主要有慢查询日志
    Oracle有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如awr、addm、sqltrace、tkproof等
    SqlServer性能检测工具有sql server profiler,性能调优工具有数据库引擎优化顾问,简单好用还炫酷; 
  • 权限与安全:
  • MySQL的用户与主机有关,更容易被仿冒主机及ip,有可乘之机,没什么意义;
    Oracle的用户和root用户权限彼此分离,权限与安全概念比较传统,中规中矩;
    SqlServer本机可用windows验证登录,远程则用SqlServer验证登录(即sa登录);  
  • 相关服务:
  • MySQL是轻量型数据库,并且免费开源,没有服务恢复数据;
    Oracle是重量型数据库,收费,Oracle公司对Oracle数据库有任何服务;
    SqlServer是重量型数据库,收费(与Java有合作),也有支持供应商;

总结得出:

MySQL优点:体积小、速度快、总体拥有成本低,开放源码,搭配“L(Linux)A(Apache)M(MySQL)P(PHP/Perl/Python)“或“LN(Nginx)MP”就可以建立起一个稳定、免费的网站系统,适合中小型网站。 
Oracle优点:使用方便、功能强大,可靠性好、安全性好、可移植性好、适应高吞吐量,适用于各类大、中、小、微机环境。
SqlServer优点:图形化用户界面,丰富的编程接口工具,与Windows NT完全集成,支持分布式的分区视图,适用于Win的Web技术的开发。
所以理性来讲,
这三个数据库各有所长。
用哪个数据库,完全取决你需要什么功能和服务。
当然啦,
也取决你有没有钱买你想要的服务

相关文章

这份MySQL全面手册,受喜爱程度不输任何大厂笔记

MySQL是目前最流行的开放源代码数据库管理系统,全世界的装机量已超过400万台。本书详细介绍了如何使用可定制的关系数据库管理系统支持健壮的、可靠的、任务关键的应用程序。今天给大家分享的是一份MySQ...

阿里面试:MySQL Binlog有哪些格式?底层原理?优缺点?

binlog的格式也有三种:STATEMENT、ROW、MIXED ,下面我详解binlog三种模式@mikechenStatement模式Statement模式:是基于SQL语句的复制(statem...

为什么MySQL选择B+树作为索引结构?深度解析其优势与性能

在数据库系统中,索引是提升查询性能的关键技术之一。MySQL作为最流行的关系型数据库之一,选择了B+树作为其默认的索引结构。那么,为什么MySQL会选择B+树?本文将从B+树的设计原理、实际应用场景以...

一文理解MySQL的锁机制与死锁排查

MySQL的并发控制是在数据安全性和并发处理能力之间的权衡,通过不同的锁策略来决定对系统开销和性能的影响。基础知识为了后续的解释更加容易理解,这里列举一些基本概念的解释。悲观锁悲观锁指的是对数据被外界...

MySQL中如何选择合适的备份策略和备份工具

数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一道防线。鉴于此,对于备份,我们通常会做以下要求:多地部署对于核心数据库,我们通常有两地三中心的部署要求。对于备份来说,也是如此。一个备份应该有多...

数据库大揭秘:10张图告诉你MySQL为什么选B+树做索引?

柠檬哥整理了50本计算机相关的电子书,关注公众号「后端技术学堂」,回复「1024」我发给你,回复「进群」拉你进百人读者技术交流群,一起学习共同成长。大家好,我是程序员柠檬橙。这篇文章就是上一篇推文和大...