从MySQL转换过来的网络开发者,你现在不能没有什么postgresql功能?

Dyl*_*lan 5 database postgresql

我正在考虑转换(主要是因为更宽松的许可证),并且倾向于听到很多互联网抱怨Postgres比MySQL有多好,但没有多少具体细节.你在Postgres做什么可以提高你的工作效率,或者你觉得优雅?

它不一定是花哨的,例如我最喜欢的一些关于MySQL的东西

  • 使用AUTOINCREMENT进行简单的主键递增(必须为每个表写一个生成器似乎比这个常见的要求更加痛苦),
  • "LIMIT,OFFSET"声明(易于分页)
  • ON DUPLICATE KEY UPDATE(快速无痛地插入/更新"多对多"表)

Qua*_*noi 4

PostgreSQLMySQL在我看来,最有用的功能(缺乏)是:

  • generate_series并设置一般返回函数
  • 能够在LIMITandOFFSET子句中使用相关值
  • 定制聚合
  • DISTINCT ON条款
  • 更高级的JOIN方法 (MERGE JOINHASH JOIN)

你可以和他们一起创造奇迹。

PostgreSQL代码通常看起来也更优雅(请注意,“看起来”并不意味着“执行”),因为您可以使用漂亮的转换语法(::)、漂亮的RECORD类型和此类东西。

缺点是:

  • 你不能使用提示(我知道这是故意的;我知道应该避免它们;给我投反对票)
  • 如果没有访问服务器配置文件,则无法使用会话变量(需要设置custom_variable_classes
  • DISTINCT并且GROUP BY操作滞后。

由于这两个系统都非常强大且开发良好,因此它们的主要区别在于这些奇特的功能(大多数开发人员甚至从未使用过)。

对于基本的SQL,它们都很好。