PSQL VS MySQL 如何选择开源数据库

数据库
PSQL和MySQL都是比较常用的开源数据库,PSQL和MySQL也都有很多的支持者,二者谁是更胜一筹,在选择开源数据库时该做出怎样的选择,本篇文章将为您解答这些疑问。

导读:一谈到PostgreSQLMySQL的比较,总会让双方支持阵营骚动和兴奋,它们都是技术过硬,安装基础很好的开源数据库,在现实中工作中,要选择一个占绝对优势的开源数据库基本上是不靠谱的,不管是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编写,以便利用其强大的正则表达式功能。

MySQL特性和功能

  MySQL被誉为是最流行的开源数据库,从一开始,MySQL就被设计为适合网站快速顺序索引方法(ISAM)的数据存储引擎,这种工作负载的一大特点就是有许多小型查询,于是催生了查询缓存,MySQL集群等提高MySQL性能的技术,MySQL集群允许数据库跨多台物理服务器部署,实现负载均衡。

  PostgreSQL不是唯一允许通过外部扩展增加数据库功能的开源数据库,MySQL最大的优势之一就是它的可插入式存储引擎,MySQL默认采用的是MyISAM存储引擎,为读操作频繁的环境提供更好的性能,而InnoDB存储引擎更适合写密集型事务环境。

  此外,还有许多第三方存储引擎,如Brighthouse和DB2,这种灵活性允许管理员根据每个表的需求调整MySQL实例,例如,对一个读操作频繁的表,如国家代码表,使用MyISAM存储引擎,对于事务型表,如销售订单表,则使用InnoDB存储引擎。

  PostgreSQL和MySQL在各种应用场合都得到了广泛的使用,例如,PostgreSQL一向以强力支撑事务密集型企业应用而著名,但许多网站也用它来支撑Web应用程序,相反,MySQL一直都是Web应用程序的首选数据库,但它在事务型企业应用系统中也得到了大量使用。

社区为王

  PostgreSQL和MySQL最大的不同可能不在技术,而是在社区上,开源项目从本质上来讲,要由社区开发人员参与和贡献,项目才能保持活力,开源社区有两种不同的类型。

  首先,有独立自主社区型纯开源数据库项目,PostgreSQL是这种最古老,最大的独立开源数据库社区,这种社区的好处是真正独立于厂商,不受厂商控制。

  第二种开源社区是由厂商控制的,这种开源项目往往同时有社区免费版和商业付费版,MySQL就是一个例子,MySQL项目最初是由MySQL AB资助和控制的,所有MySQL核心开发人员和架构师都由MySQL AB出资雇佣,被Sun收购后,MySQL社区就被Sun控制,现在又被Oracle控制。

共享许可

  许可,或源代码允许如何修改和共享,这可能是真正影响开源数据库选择的决定性因素,PostgreSQL许可是仿照BSD许可模式的,它允许修改代码,并根据修改者自愿是否以开源形式再发布,这种开放式许可对想使用PostgreSQL作为他们解决方案一部分的软件厂商来说是最理想的,因为PostgreSQL许可不强制衍生解决方案也开源,软件厂商可以选择开放他们的源码,也可以不开放。

  MySQL是通过GNU GPL共享,并由Oracle控制,GNU GPL更加开放,它鼓励免费共享代码,它防止了采用GNU GPL共享的代码后,也被迫采用源作者GNU GPL许可共享的缺陷。

小结

  以上总结的PostgreSQL和MySQL的各自特点,大家以后再选择开源数据库时这些特点可以作为参考。虽然PostgreSQL和MySQL同属开源数据库,但相同点也可能仅限于此,重叠的地方很少,它们都有自己鲜明的特性,相对于昂贵的专有数据库产品,它们都是高品质的开源数据库,尤其是在当今经济不景气的环境下,选择优秀的开源数据库不失为为企业节省成本的一种好方法,不但如此,选择了适合的开源数据库也会提高工作效率,加快企业的发展。

【编辑推荐】

  1. 推荐五个最好的MySQL GUI工具
  2. MySQL Show语句用法介绍
  3. PostgreSQL数据库管理入门之psql工具篇
  4. PJBlog博客系统后台Action.aspSQL注入缺陷
责任编辑:迎迎 来源: IT168
相关推荐

2024-03-28 09:00:00

NoSQL数据库

2017-09-14 10:10:55

数据库MySQL架构

2018-11-02 08:30:43

开源数据库技巧

2018-10-25 08:00:00

数据库开源数据库开源技术

2017-11-20 13:32:54

微服务数据库开发

2019-07-23 11:41:45

数据库SQLDocker

2021-01-10 15:29:53

开源数据库数据库

2011-02-24 15:04:00

PostgreSQL数据库psql

2011-03-24 14:40:29

PostgreSQL数管理

2010-03-09 10:13:01

MySQL开源数据库

2020-07-20 08:00:29

数据库

2010-06-01 14:07:56

2017-06-19 16:20:09

数据库性能工具

2016-10-08 18:13:55

数据库性能工具数据库管理系统

2020-06-17 15:01:30

物联网数据库物联网数据库

2023-04-03 08:00:00

数据库NoSQL

2022-05-05 09:11:33

数据库加密数据安全

2020-09-03 11:35:22

SQLiteMySQLPostgreSQL

2021-11-26 05:14:44

开源数据库安全漏洞

2011-06-29 14:01:30

多数据库实例效率
点赞
收藏

51CTO技术栈公众号