postgresql与mysql相比,优势何在?

PostgreSQL 支持 trigram 索引,能够改进全文搜索结果的准确性,同时实现高效的正则搜索。处理树状回复和图结构在 MySQL 中设计复杂且代码量大,而 PostgreSQL 提供高效处理树结构的能力。此外,它还能轻松处理“朋友的朋友的朋友”等关系。PostgreSQL 兼容多种外部数据源,可以作为查询数据源,实现从 Mysql、...
postgresql与mysql相比,优势何在?
Pg 没有 MySQL 的各种坑

MySQL 有多种限制在 text 字段上的大小,需要手动区分 small text, middle text, large text,而 Pg 没有这个限制,text 能支持任意大小。

在 SQL 标准中,进行 null 判断不能使用 = null,只能使用 is null。Pg 提供了设置 transform_null_equals 的选项,可以将 = null 翻译成 is null,避免误踩坑。

MySQL 中显示 emoji 需要使用 utf8mb4,而 Pg 则无需此限制。

MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新,需要手动加锁,这会影响性能。而 Pg 的列里有一个隐藏的乐观锁 version 字段,使用默认的 repeatable read 级别就能保证并发更新的正确性,并且具有乐观锁的性能优势。

MySQL 不支持多个表从同一个序列中取 id,而 Pg 可以实现这一功能。

MySQL 不支持 OVER 子句,而 Pg 支持。OVER 子句可以解决“每组取 top 5”等简单问题。

几乎任何数据库的子查询性能都比 MySQL 好。

MySQL 在处理数组和 JSON 数据时不如 Pg 强大,Pg 可以在数组和 JSON 上建立索引,甚至使用表达式索引。Pg 还设计了 jsonb 存储结构以实现文档数据库功能。考虑到性能和灵活性,Pg 的 jsonb 结构优于 MongoDB 的 BSON。

使用 Pg + PostgREST 可以快速高效地生成后端 API,PostgREST 的性能非常强悍,因为 Pg 可以直接组织返回 JSON 的结果。

PostgREST 支持服务器端脚本,如 TCL、Python、R、Perl、Ruby、MRuby 等,自带 map-reduce 功能。

PostgREST 与 PostGIS 结合,提供地理信息处理扩展,可用于构建寻路服务器和地图服务器。

PostgreSQL 内置全文搜索功能,无需额外安装 Elasticsearch 等工具。

虽然一些语言相关支持还有待完善,但对于中文分词,可以通过 bamboo 插件实现,或者直接分词后存入 tsvector。

PostgreSQL 支持 trigram 索引,能够改进全文搜索结果的准确性,同时实现高效的正则搜索。

处理树状回复和图结构在 MySQL 中设计复杂且代码量大,而 PostgreSQL 提供高效处理树结构的能力。此外,它还能轻松处理“朋友的朋友的朋友”等关系。

PostgreSQL 兼容多种外部数据源,可以作为查询数据源,实现从 Mysql、Oracle、CSV、Hadoop 等多种格式的数据中查询信息。

考虑到 PostgreSQL 的优势和功能,考虑从 MySQL 转移到 PostgreSQL 是一个值得考虑的选项。2024-08-31
mengvlog 阅读 52 次 更新于 2025-10-29 17:15:21 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部