【IT168 评论】一谈到PostgreSQL和MySQL的比较,总会让双方支持阵营骚动和兴奋,它们都是技术过硬,安装基础很好的开源数据库,在现实中工作中,要选择一个占绝对优势的开源数据库基本上是不靠谱的,不管是PostgreSQL还是MySQL,都不能声称自己比对方更优秀,对用户来说,只有合适的,没有最优秀的。
当人们了解了每一种产品的优势后,要做出斩钉截铁的选择就很容易了,为了准确评价PostgreSQL和MySQL各自的优势,我们从双方的历史谈起,然后介绍一下它们的功能和性能特点,最后介绍一个成功的企业级数据库部署都有哪些要求。
历史对比
PostgreSQL社区是同类数据库历史最悠久,规模最大,发展最快的社区,PostgreSQL起源于1985年加州伯克利大学的Ingress项目,在学术界流行多年后,PostgreSQL项目开源了,社区开始蓬勃发展,截至目前,有超过1000名贡献者和3万名成员。
大社区的关键优势在于用户和开发者之间的互动比较频繁,用户甚至可以直接参与到新功能的设计中,这种多元化的社区模式也是其它开源社区争相模仿的模式。
MySQL社区最初起源于商业世界,MySQL于1994年诞生在瑞典,作为网站背后的高速数据库,在MySQL AB公司控制几年后,MySQL也选择了开源,有商业公司的支持使得MySQL很快便成为世界上广泛使用的数据库之一,这也是Sun公司2008年花10亿美元重金收购MySQL AB的原因,因为MySQL的流行,也成为欧盟调查Oracle收购Sun一案的主要因素。
PostgreSQL特性和功能
通过数十年的发展,PostgreSQL被誉为市场上非常先进的开源数据库,作为一个功能全面的开源关系数据库管理系统,PostgreSQL在支持高事务,关键任务应用方面提供了许多特性。
PostgreSQL最核心的竞争力是对它保管的数据的安全保护能力,通过使用企业身份验证机制,如LDAP或Kerberos控制数据库的连接访问,一单通过验证,所有到数据库的通信都可以走SSL连接,提供了高度安全的保护。
添加或修改数据时,PostgreSQL强制执行用户定义的大量约束,确保数据质量符合业务规则限制,从简单的范围检查到复杂的外键检查,一旦数据存储到磁盘上,就可以进行备份,更重要的是,从灾难恢复是至关重要的,PostgreSQL有一个简单的在线备份工具,配合时间点恢复(PITR)机制,为管理员执行快速恢复提供了很好的灵活性。
PostgreSQL的核心架构允许其他社区小组通过附加模块的形式为PostgreSQL创建更高级的功能,一个很好的例子就是PostgreSQL的地理空间支持,此功能来自一个名为PostGIS的模块,它是PostgreSQL的一个简单扩展,使其成为最强大的可保存空间数据的开源或商业数据库。
PostgreSQL另一个扩展能力是它具有多种不同类型的存储过程语言,允许开发人员使用他们熟悉的语言编写服务器端代码,例如,需要执行复杂文本处理的触发器可以用Perl编写,以便利用其强大的正则表达式功能。