为什么选择PostgreSQL而不是MySQL
原创转自:http://www.infoq.com/cn/news/2015/03/why-postgresql-not-mysql/
另附一篇CSDN博客链接: PostgreSQL与MySQL比较
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系统目录还可以包含有关数据类型、函数和访问方法的信息,开发人员可以通过修改来扩展这些信息。
-
- *
感谢 徐川 本文回顾。
给InfoQ请发送电子邮件至中文网站提交或参与内容翻译工作 editors@cn.infoq.com 。也欢迎大家使用新浪微博( @InfoQ , @丁晓昀 )、微信(InfoQ)关注我们,与我们的编辑和其他读者交流。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除