postgresql与mysql的区别
1,MySQL 的各种 text 字段有不同的限制, 要手动区分 small text, middle text, large text... Pg 没有这个限制, text 能支持各种大小.
2, pg 可以设置 transform_null_equals 把 = null 翻译成 is null 避免踩坑
3,MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 Pg 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能. 附带一个各数据库对隔离级别的行为差异比较调查: http://www.cs.umb.edu/~poneil/iso.
4,MySQL 不支持多个表从同一个序列中取 id, 而 Pg 可以.
5,MySQL 不支持 OVER 子句, 而 Pg 支持. OVER 子句能简单的解决 "每组取 top 5" 的这类问题.
几乎任何数据库的子查询 (subquery) 性能都比 MySQL 好.
作者:luikore
链接:https://www.zhihu.com/question/20010554/answer/62628256
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。