首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL和PostgreSQL在编写SQL查询方面有什么不同?

MySQL和PostgreSQL在编写SQL查询方面有什么不同?
EN

Database Administration用户
提问于 2014-03-05 21:16:14
回答 1查看 6.6K关注 0票数 2

除了性能和安全性之外,MySQL和Postgres之间真的有什么区别吗?比如SQL查询、内置函数、过程等等?

我问这个问题是因为我熟悉MySQL (phpMyAdmin),但不熟悉Postgres (phpPgAdmin)

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-03-06 02:06:14

(关于2014年编写的PostgreSQL 9.3和MySQL 5.6,如果您正在查看其他版本,这可能已经过时):

更多的特征。

  • CHECK约束
  • SERIALIZABLE分离
  • 数组(包括对数组的索引支持)
  • 窗口函数(leadlagrow_number等)
  • 通用表表达式(WITH查询),包括递归的CTE和可写的CTE
  • hstore哈希类型及其索引支持
  • SQL/XML支持
  • json支持
  • 多种类型的一组丰富的函数和运算符
  • 部分和函数/表达式索引,包括部分唯一索引和唯一表达式索引
  • 复合类型
  • 用户定义的聚合和运算符
  • 设置返回用户定义的函数
  • 用户定义类型
  • 事务性DDL (这太棒了)
  • 用于复杂索引需求的GIN和GiST索引,包括K-最近邻索引
  • PostGIS
  • UNLOGGED表(尽管MyISAM满足了MySQL中的这一需求)

详情请参见综合用户手册

然而:

  • 与PostgreSQL不同,MySQL中没有会话变量。(您可以为此滥用GUC,但不能对MySQL会话变量执行相同的操作)。
  • PostgreSQL没有INSERT ... ON DUPLICATE KEY UPDATE(“向上插入”)
  • 目前,PostgreSQL具有与MySQL不同的复制选项。MySQL没有实时恢复,但是PostgreSQL没有逻辑复制(但是,我们正在研究它)。
  • 用于分组摘要的GROUP BY ... ROLLUP。在PostgreSQL中做同样的事情需要一个联合,通常在一个CTE上进行两个查询。
  • PostgreSQL没有内置的事件调度程序。您通常只使用cron或;还有来自PgAdmin的PgAgent。
票数 13
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/60242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档