为什么选择PostgreSQL而不是MySQL

为什么选择PostgreSQL而不是MySQL,第1张

概述David Bolton是一名独立开发者,他使用PostgreSQL和MySQL都已有超过十年的时间。近日,他撰文阐述了选择PostgreSQL而不是MySQL的理由。他认为,MySQL之所以仍然如此流行是因为每个Linux Web托管软件包中都包含它。但随着Oracle将其收购,MySQL的开源程度大不如前。而PostgreSQL不仅发展更快,还加入了JSON支持,成为少数几个支持NoSQL的关

David Bolton是一名独立开发者,他使用Postgresql和MysqL都已有超过十年的时间。近日,他撰文阐述了选择Postgresql而不是MysqL的理由。他认为,MysqL之所以仍然如此流行是因为每个linux Web托管软件包中都包含它。但随着Oracle将其收购,MysqL的开源程度大不如前。而Postgresql不仅发展更快,还加入了JsON支持,成为少数几个支持Nosql的关系型数据库之一。

MysqL/MariaDB的当前版本是5.7.6(MariaDB为MysqL创建者Monty WIDenius创建的一个MysqL分支),Postgresql的版本是9.4.1。Bolton从以下几个方面对比了两者的最新版本:

ANSI标准兼容性:与先前的版本相比,MysqL已经有了长足的进步,但MysqL背后的哲学是,如果客户喜欢,他们就会支持非标准扩展,而Postgresql从开始就将标准构建到平台里。不过,二者殊途同归,差别不大; ACID遵从性:Postgresql有一个存储引擎,而MysqL有9个,但只有MyIsam和InnoDB与大部分用户有关,其中,后者为默认存储引擎。InnoDB和Postgresql都完全遵循ACID,差别不大; 无锁表修改:MyIsam使用表级锁来提升速度,这会导致写互斥。但Postgresql和InnoDB均使用行级锁,差别不大; 子查询:长期以来,这一直是MysqL的一个弱点,虽然5.6.5作了重大改进,但Postgresql对表连接支持得更好,尤其是MysqL不支持全外连接,因此,这方面Postgresql胜过MysqL; JsON支持和Nosql:Postgresql最近增加了JsON支持,与传统的关系型数据库相比,它提供了更大的数据存储灵活性,因此,这方面Postgresql胜过MysqL。

此外,Bolton指出,选择Postgresql还有如下理由:

更好的许可:Postgresql采用类似MIT的许可协议,允许开发人员做任何事情,包括在开源或闭源产品中商用,而MysqL的客户端遵循GPL许可协议,所以开发人员必须向Oracle付费或者将自己的应用程序开源; 更好的数据一致性: Postgresql会在数据插入和更新之前进行严格的验证,确保数据合法才会进行相应的 *** 作,但在MysqL中,开发人员需要将服务器设定为严格sql模式才能达到同样的目的,否则可能会产生不规范数据; 服务器扩展:MysqL提供了插件程序API,支持C/C++或任何兼容C的语言,而且从5.7.3版本开始支持全文搜索,Postgresql有一个类似的系统但支持的语言更多,包括C/C++、Java、.Net、Perl、 Python、Ruby、Tcl、ODBC等,它甚至可以在单独的进程中运行用户提供的代码;除了所有关系型数据库都包含的有关数据库、表和列的一般信息外,Postgresql系统目录中还可以包含关于数据类型、函数和存取方法的信息,开发人员可以通过修改这些信息实现扩展。 总结

以上是内存溢出为你收集整理的为什么选择PostgreSQL而不是MySQL全部内容,希望文章能够帮你解决为什么选择PostgreSQL而不是MySQL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1173079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存