PostgreSQL与MySQL的最佳开源数据库之争

  为企业选择一个适合的数据库,需要做一个相当长远的打算,因为如果日后改变选择,将付出非常艰难又昂贵的代价。所以必须第一次就做出正确的选择。MySQLPostgreSQL是两个最受欢迎的开源数据库,它们往往是数据库管理员准备进行新的部署时最终的两个候选。本文通过对这两个开源数据库的概述及对比,为您选择满足企业需求的数据库提供帮助。

PostgreSQL与MySQL的最佳开源数据库之争

  PostgreSQL

  PostgreSQL (发音为Post-gress-cue-ell)宣称自己是世界上最先进的开源数据库。PostgreSQL的狂热者认为它的性能跟Oracle不分上下,而且没有高成本的负担。PostgreSQL拥有着悠久的历史,可以追溯到1985年,由加州大学伯克利分校最早开发,是Ingres数据库的衍生。

  PostgreSQL是100%社区驱动的开源项目,由全球范围内千人以上的社区贡献者共同维护。PostgreSQL提供了一个完整功能的版本,而不像MySQL那样,提供多个不同的版本,如社区版、商业版及企业版。PostgreSQL的开源协议采用自由的BSD/MIT类型,这种开源协议允许任何人在保留版权声明的情况下使用、复制、修改或者分享代码。

  可靠性是PostgreSQL最优先的事项。众所周知,PostgreSQL坚如磐石并且设计精密,能够支持事务处理和关键任务应用。PostgreSQL提供一流的文档服务,包括全面的免费在线手册,以及旧版本手册的存档。社区的支持非常出色,并且有独立厂商提供商业支持。

  数据一致性和完整性也是PostgreSQL的高度优先事项。PostgreSQL是完全符合ACID原则(原子性、一致性、隔离性、持久性)的数据库。PostgreSQL对数据库访问提供强大的安全控制,不仅能够利用好企业安全工具,如Kerberos和OpenSSL等,还可以根据自己的业务规则自定义核对方法,以确保数据的质量。数据库管理员最喜欢的功能是时间点恢复(point-in-time recovery 简称PITR)功能,它具有灵活性、高可用性特征,能够打造快速故障的热备份服务器,以及快照和恢复到特定时间点等。但这还不是全部。该项目提供了很多方法来管理PostgreSQL,使PostgreSQL具有高可用性、负载均衡和同步功能,因此你可以利用这些功能来满足特定需求。

  MySQL

  MySQL相对年轻,首次出现在1994年。MySQL自称是世界上最流行的开源数据库。MySQL是LAMP中的M,LAMP软件包经常用于Web开发,该软件包还包括了Linux、Apache和Perl/PHP/Python。很多应用程序建立在LAMP组合的基础上,其中包括一些很著名的应用,如WordPress、Drupa、Zend和phpBB等。

  最初MySQL被设计为快速的Web服务器后台,使用快速索引顺序访问方法(indexed sequential access method 简称ISAM),不符合ACID原则。MySQL初期已经支持一些辅助性存储引擎,并且现在可以通过InnoDB引擎履行ACID原则。MySQL还支持其它存储引擎,提供了一些功能,如MEMORY存储引擎提供的临时表,EXAMPLE存储引擎提供的开发者实例,MyISAM引擎提供的快速只读数据库,再加上其他几个核心存储引擎以及若干第三方引擎。

  MySQL文档资源丰富,包括高质量的免费参考手册,许多相关书籍和网上的技术文章,并可以从Oracle和第三方供应商那里获得培训和支持。

  近年来,MySQL经历了所有权变更和一系列戏剧性事件。它最初是由MySQL AB开发,MySQL AB于2008年以10亿美元的价格被Sun Microsystems公司收购。2010年Sun又被Oracle收购。Oracle提供多个版本:标准版、企业版、经典版、集群版、嵌入式版与社区版。其中有些是免费下载,也有需要付费的。核心代码使用GPL协议,不喜欢使用GPL协议的开发商和供应商可以使用商业许可证。

  目前对基于原始的MySQL代码的数据库有更多的选择,因为几个关键的MySQL开发人员已经发布了MySQL的分支。Michael“Monty”Widenius是MySQL的创始人之一,开发了自己的MySQL分支,MariaDB,免费并采用GPL许可协议。Drizzle是MySQL的分支,由著名的MySQL开发人员Brian Aker开发,Drizzle进行了重大改写并改变核心观念,为多处理器、云技术、.NET应用程序和大量的并发操作进行优化。

  平台和工作负载

  以下是使用MySQL或者PostgreSQL具有代表性的网站:

  MySQL:

Slashdot(资讯科技网站)

Twitter

Facebook

Wikipedia(维基百科)

  PostgreSQL:

Yahoo运行一个多拍字节修改后的PostgreSQL数据库处理每天数十亿事件

Reddit(新闻网站)

Disqus(社会性媒体)

  MySQL和PostgreSQL有很多共同点,它们都可以运行在多个操作系统上,如Linux、 Unix、Mac OS X和Windows系统;它们都是开源的和免费的,因此测试只需要耗费时间和硬件;它们都很灵活,使用范围很广,不管是小型部署还是大型分布式系统均可使用。MySQL比PostgreSQL小一个级别,利用libmysqld进入嵌入式空间。PostgreSQL不支持嵌入式应用,坚持替代传统客户机/服务器架构。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/11026.html