在这篇文章中,我将看一个PostgreSQL和MySQL的比较。
我看到一篇文章从汉斯Schoenig, Cybertec Postgres顾问。在这本书里,他驳回了MySQL和显示Postgres更好。虽然他忽略了MySQL的大部分原因是更好,我将关注他的帖子在哪里不够准确。与Percona服务器测试MySQL是5.7,缺省值。雷竞技下载官网
Schoenig先生抱怨说MySQL数据类型自动变化。他声称1234.5678插入一个数字(4,2)列在Postgres产生一个错误,和MySQL刚才发适合数量。在我测试我发现这是一个错误的说:
|
1
2
3
4
5
6
7
|
mysql>
创建
表
数据(
- - - - - ->
id
整数
非空,
- - - - - ->
数据
数字(4,2));
查询好吧,0
行
影响(0.07sec)
mysql>
插入
成
数据
值
(1,1234.5678);
错误1264年(22003):
出
的
范围
价值
为
列
“数据”
在
行
1
|
他的下一个要求就是MySQL允许更新键列零和默默地改变它为0。这也是错误的:
|
1
2
3
4
5
|
mysql>
插入
成
数据
值
(1,12);
查询好吧,1
行
影响(0.00sec)
mysql>
更新
数据
集
id=
零
在哪里
id=1;
错误1048年(23000):
列
“id”
不能是
零
|
在原文中,我们从来没有看到警告,所以没有他的环境的全部细节。因为他没有指定哪个版本测试,我将指出MySQL 5.7远比5.6更好开箱即用的处理你的数据,和SQL模式已经存在在MySQL中。任何用户可以设置它STRICT_ALL|TRANS_TABLES,现在是5.7默认的行为。
作者也是集中在一个狭窄的问题,用它来表示Postgres更好。我觉得这是误导。我可以指出因素在MySQL中比Postgres。
这是另一个的情况下“不一定相信我们的话”。一个简单的测试,你所看到的在博客上可以帮助您了解如何在您的环境中工作和为什么。






是的,那家伙是个白痴,他无能,以至于说不出话来。
嗨Manjot辛格
谢谢你的帖子。
先生的文章Schoenig是证明我们必须过滤所有读取。我相信“言论自由”,但有些人就是在错误的方式使用它。
也许每个人都应该阅读为什么超级抛弃Postgres,搬到MySQL
https://eng.uber.com/mysql-migration/
哇。
大部分的抱怨MySQL PostgreSQL世界是基于MySQL 5.0或更糟。
我也曾经听过“MySQL没有完整的GROUP BY”。来吧伙计们,ONLY_FULL_GROUP_BY存在SQL_MODE从MySQL 5.0…