译者注:作者将PostgreSQL与MariaDB和MySQL进行比较,在数据类型处理,数据构造和NULL处理三方面表现出PostgreSQL的优势,同时赞助开辟者更好地选择合适本身的数据库。
以下为译文:

多年来,MySQL和PostgreSQL是互相竞争的数据库,但这些数据库是针对不合的用户。在我看来PostgreSQL办事于专业用户,而MySQL在Web开辟人员中很受迎接。然则,在Oracle接办MySQL之后,我认为MySQL的明星色彩已经有点褪色了。
自负年夜MariaDB推出以来,我小我认为这项技巧还没有真正完成,但用户依旧会应用MySQL/MariaDB,并且很有兴趣地将PostgreSQL与这些技巧进行比较。很多人对“PostgreSQL is just better”(PostgreSQL更胜一筹)如许的话表示不合意。如许的┞幅论往往是不明智的,但PostgreSQL社区确切可以或许做得更好。所以应当提出一些设法主意,为什么应用PostgreSQL比MySQL/MariaDB更合适。
这篇文┞仿的目标是列举一些例子,来解释在技巧层面上为什么你可能更应当应用PostgreSQL。但要留意:这个帖子只是解释一些“最好的”特点,并不是一个完全的列表,然而,这些应当足以让人们做出决定计划。
PostgreSQL与MySQL / MariaDB:数据类型处理

在这里看到的是PostgreSQL缺点,因为试图放入表中的数据并不相符列的数据类型,而MySQL / MariaDB则会静静地更改你的数据。是的,MySQL/MariaDB确切发出了警告,但过了一段时光后,表中的数据就不是最初的数据了。
为什么这很重要?假设你中了一百万的彩票,但你最终只获得9999.99,只因为数据变更极少,所以不幸的是根本没有人留意到。你会朝气吗?我会的。在这个例子中,PostgreSQL所显示的操作是精确的,原因有很多:
- 最可能的原因是定义了列的方法。
- 警告不等同于缺点。
- 存储数据不是 “容忍”——它更存眷精确性。
- 如不雅你对着本身开枪,那也就没有须要去警告你,因为“你如今可能已经逝世了”——所以最好是在一开端就阻拦这种工作的产生。
经验总结:PostgreSQL异常看重数据构造。
PostgreSQL vs MySQL / MariaDB:谨慎对待现稀有据


PostgreSQL细心区分了0、空字符串和NULL。这些都是不一样的,PostgreSQL老是会看重你的束缚前提。
PostgreSQL达到了我小我对数据库的期望。它会报掉足误,并告诉我们数据是不克不及被更改的,因为数据是须要被保护的。如不雅你想要更改表中的数据(以防新规矩被违背),你必须明白地告诉PostgreSQL你想要什么:

在这种情况下,我们会告诉PostgreSQL若何进行处理数据。PostgreSQL并没有很智能(也不像MySQL / MariaDB如许的掉败),它不会去测验测验做一些有趣的工作——它只是做你想做的工作,以及做一些对你的数据有好处的工作。
PostgreSQL与MySQL / MariaDB:NULL处理很重要

51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦!
你还记得“id”列上有一个非空束缚吗?MySQL / MariaDB并不关怀这个,只是将值设为0。然则,0和NULL绝对不是一回事。NULL的意思是“不决义”或“我们不知道的值”。这其实很有事理:如不雅你不知道你口袋里有若干钱,那也不料味着你的口袋是空的。如不雅你不知道你喝了若干啤酒,这也并不料味着你的血液里有“零”酒精——你实际上可能方才大年夜椅子上摔下来。
选择数据库
我在PostgreSQL和MySQL/MariaDB之间的选择是毫无疑问的,对于我小我来说,MySQL不会是我的选择。然而,这是一个自由的世界,人们可以本身做决定,欲望你们能做出明智的决定。
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦!图片社交之所以可以或许逐渐替代文字成为风行的社交方法,一方面是因为图片的临盆方法便捷,今朝中国智妙手机保有量异>>>详细阅读
本文标题:为什么我更喜欢PostgreSQL而不是MariaDB/MySQL
地址:http://www.17bianji.com/lsqh/37320.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示