MySQL比PostgreSQL更好吗?

我知道这个问题听起来很挑衅,但事实并非如此。 我最近在很多领域都发现了MySQL限制,并且越来越喜欢PostgreSQL。 它扩展了很多,它比MySQL更重视SQL标准。

尽pipe我仍然是PostgreSQL世界的新手,而且我愿意为了我所有未来的项目而放弃MySQL,但是我想知道的是:MySQL有没有什么特别的function可以做得更好(比如更多高性能或更多的用户友好等)比在PostgreSQL?

我想知道我会从MySQL中错过什么。 我已经发现MySQL中的AUTO_INCREMENT字段比PostgreSQL中的SEQUENCES更方便,并且在Windows中的部署过去是有问题的(不再是一个问题,对我来说永远不是问题)。

还有什么?

从开发人员的angular度来看,您已经清楚地了解了这一点,所以您可以在SO上find更多有用的答案。

从pipe理的angular度来看:
– 复制(HA)
– 复制(缩放*)
– 复制(备份)
– 应用程序支持
– 社区的大小和深度(文档,支持)
– 现有的安装基础/可用作业

*注意你提到postgres缩放比较好。 扩展意味着每个人都有所不同,但是一般来说,有一条path可以将负载分散到多台服务器上,而不是那些不需要的东西。

COUNT(*)在PSQL上也要慢很多。 你应该为这种function创build触发器。

由于Postgres为每次更新都有效地进行了copy-on-write(以便它可以处理事务),所以如果你不需要事务,并且相对于读操作做了大量的写操作,MySQL将不会有PostgreS将。 (每个更新的logging需要写更多,更新索引等)

我能想到PostgreSQL中缺less的一件事情:

我认为还有阻塞,插入或更新的东西。 但我似乎无法记得它究竟是什么。 :S

auto_increment字段是“方便”是不是很相关是吗? Oracle拥有序列,无疑是世界上使用最广泛的商业数据库。

这是一个巨大的信息被发现有关如何PostgreSQL如果更安全等等。 我只是想指向PostgreSQL wiki上的这个页面(毫无疑问是一个有色的意见,但这就是你正在寻找的东西)。

很多人在这个页面上提到MySQL对新手更友善。 所以? 向我解释在关键任务环境中这是多么重要。

MySQL通常被称为SQL'ed grep 。 至于我(现在写作的时候),它看起来很像PHP – 很尴尬,但很受欢迎。

我想知道我会从MySQL中错过什么。

尝试从头开始重命名数据库。 ;)然后添加(缺less)条件索引。

PS我可以指出MySQL至less有一个无争议的好function – 它支持非常小的空间保存数据types,例如(无符号)字节,例如。 这可以在相应使用时节省大量的RAM和磁盘空间。 但是,除此之外,还有很less的好处。 比较你的链接是非常漂亮的。

auto_increment是很方便的,直到你意识到他们吸入插入并发性非常高的表,在这一点上,他们成为瓶颈,你不得不使用MyISAM表来实现一个序列。

无论如何,要回答你的问题,MySQL已经做的最大的事情是很容易设置复制,允许复制链接和读奴隶。 但是,Postgres将在下一个版本9.0(已经是alpha版本)中有这个function。