详解Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
概述
目前比较火的关系型数据库主要是Oracle 、SQL Server、MySQL和PostgreSQL,那么他们之间都有什么优缺点呢?在做技术方案选型的时候可以怎么考虑。
Oracle Database
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
优点
- 1. Oracle 能在所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持。
- 2. Oracle 并行服务器通过使组结点共享同簇工作来扩展windownt能力提供高用性和高伸缩性簇解决方案windowsNT能满足需要用户把数据库移UNIXOracle并行服务器对各种UNIX平台集群机制都有着相当高集成度。
- 3. 获得最高认证级别的ISO标准认证。
- 4. Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录。
- 5. Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接。
- 6. Oracle 长时间开发经验完全向下兼容得广泛应用地风险低。
缺点
- 1. 对硬件的要求很高。
- 2. 价格比较昂贵。
- 3. 管理维护麻烦一些。
- 4. 操作比较复杂,需要技术含量较高。
SQL Server
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
优点
- 1. 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等;
- 2. 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。 作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力;
缺点
- 1. SQL Server 只能windows上运行,没有丝毫开放性操作系统,系统稳定对数据库十分重要,WindowsX系列产品偏重于桌面应用,NT server只适合小型企业,而且windows平台可靠性、安全性和伸缩性非常有限。
- 2. SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限;
- 3. 没有获得任何安全证书。
- 4. SQL Server 多用户时性能佳。
MySQL
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL 是一种关联数据库管理系统, 关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
优点
- 1. 体积小、速度快、总体拥有成本低,开源,提供的接口支持多种语言连接操作。
- 2. 支持多种操作系统。
- 3. MySQL 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySQL 能很容易充分利用CPU。
- 4. MySQL 有一个非常灵活而且安全的权限和口令系统。当客户与MySQL 服务器连接时,他们之间所有的口令传送被加密,而且MySQL 支持主机认证。
- 5. MySQL 能够提供很多不同的使用者界面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言界面,例如 C++,Perl,Java,PHP,以及Python。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL可用于 Unix,Windows,以及OS/2等平台,因此它可以用在个人电脑或者是服务器上。
缺点
- 1. 不支持热备份。
- 2. MySQL不支持自定义数据类型
- 3. MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。
- 4. MySQL对存储过程和触发器支持不够良好。
- 5. 尽管 MySQL 理论上仍是开源产品,也有人抱怨它诞生之后更新缓慢。然而,应该注意到有一些基于 MySQL 并完整集成的数据库(如 MariaDB),在标准的 MySQL 基础上带来了额外价值。
- 6. MySQL对XML支持不够良好
PostgreSQL
PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统),支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL。
优点
- 1. PostgreSQL 是一个开源的,免费的,同时非常强大的关系型数据管理系统。
- 2. PostgreSQL 背后有热忱而经验丰富的社区,可以通过知识库和问答网站获取支持,全天候免费。
- 3. 即使其本身功能十分强大,PostgreSQL 仍附带有许多强大的开源第三方工具来辅助系统的设计、管理和使用。
- 4. 可以用预先存储的流程来程序性扩展 PostgreSQL ,一个高级的关系型数据库理应如此。
- 5. PostgreSQL 不只是一个关系型数据库,还是一个面向对象数据库——支持嵌套,及一些其他功能。
缺点
- 1. 对于简单而繁重的读取操作, 超过了 PostgreSQL 的杀伤力,可能会出现比同行(如MySQL)更低的性能。
- 2. 按给出的该工具的性质,从普及度来说它还缺乏足够后台支撑,尽管有大量的部署——这可能会影响能够获得支持的容易程度。
MySQL Vs PostgreSQL
为了说明PostgreSQL的功能,下面简要对比一下PostgreSQL数据库与MySQL数据库之间的差异
总之,如果公司不要求去O,Oracle在目前仍是最好的选择之一,如果你的数据库在表的设计逻辑比较偏向简单化,数据量也不会太大的话用mysql是比较好的选择,而假设公司要求去O,在对ORACLE系统迁移的话不太建议迁到mysql,比较建议迁移到PG,毕竟PG是最像Oracle数据库的一个关系型数据库,很多特性也都支持。sqlserver对比可能优势就不是特别大了。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~