我知道这个问题听起来很有挑衅性,但事实并非如此。最近我发现 MySQL 在很多方面都存在局限性,我越来越喜欢 PostgreSQL。它的扩展性更好,而且比 MySQL 更尊重 SQL 标准。
虽然我对 PostgreSQL 世界还很陌生,而且由于我愿意在所有未来项目中放弃 MySQL,所以我想知道的是:MySQL 是否有比 PostgreSQL 做得更好的特定功能(例如性能更高或更加用户友好等)?
我想知道我会错过 MySQL 的什么功能。我已经发现 MySQL 中的 AUTO_INCREMENT 字段比 PostgreSQL 中的 SEQUENCES 更方便,并且过去在 Windows 中部署存在问题(现在不是问题了。对我来说从来都不是问题)。
还有什么?
答案1
您显然是从开发人员的角度来解决这个问题,因此您可能会在 SO 上找到更多有用的答案。
从管理角度来看:
- 复制(HA)
- 复制(扩展*)
- 复制(备份)
- 应用程序支持
- 社区的规模和深度(文档、支持)
- 现有安装基础/可用作业
*请注意,您提到了postgres
更好的扩展。扩展对于每个人来说意味着不同的东西,但一般来说,那些可以将负载分散到多个服务器上的东西比没有这种东西的扩展性更好。
答案2
使用 PSQL 时 COUNT(*) 也慢得多。您应该为此类功能创建触发器。
答案3
因为 Postgres 会有效地对每个更新执行写时复制(以便它可以处理事务),所以如果您不需要事务,并且相对于读取执行大量写入,那么 MySQL 就不会像 PostgreS 那样有开销。(每个更新的记录都需要写入更多内容、更新索引等)
答案4
auto_increment 字段很“方便”,但这并不重要,对吧?Oracle 有序列,无疑是世界上使用最广泛的商业数据库。
关于 PostgreSQL 如何更安全等等,有大量信息可供查找。我只想指出这PostgreSQL wiki 上的页面(毫无疑问这是一种有偏见的观点,但无论如何这正是你要找的)。
很多人都在这个页面上提到 MySQL 对新手更友好。那么呢?请向我解释一下这在关键任务环境中有何重要意义。