PostgresQL
-
- 对象层次结构,Postgres 比 MySQL 多了一层
模式 Schema
; - Postgres 提供更强大的事务支持
- Postgres 支持开箱即用的附加行级安全 (RLS),而 MySQL 需要创建额外的视图来模拟此行为。
- Postgres 的查询优化器更优秀
- Postgres 和 MySQL 都支持 JSON。Postgres 支持的功能更多
- Postgres 对 CTE 的支持更全面
- 一般来说,Postgres 实现的 Window Functions 比 MySQL 实现更高效且性能更好。
- Postgres 支持多种扩展。最出色的是 PostGIS,它为 Postgres 带来了地理空间能力;pgvector 用于进行 AI 应用的向量搜索
- Postgres 的SQL语句更加严格
- Postgres 采用在每个连接上生成一个新进程的方式工作
- 在高负载下,Postgres 存在臭名昭著的 XID wraparound 问题。
Tips
- 查看数据库大小:
psql -U postgres -d postgres -h 127.0.0.1 -W SELECT pg_size_pretty(pg_database_size('db_name')); \q
- 使用 uuid 作为主键时,最好使用 uuid v7 , 对大数据集性能有提升。postgres-uuid-primary-key
pgAdmin
- windows打开pgAdmin,在浏览器端一直 loading ?
pgAdmin 4 v4.28包括额外的安全性 功能,其中之一旨在防止引起的安全问题 通过内容嗅探。 不幸的是,某些Windows系统配置错误,因此 导致pgAdmin使用的Javascript无法加载。打开 浏览器上的开发人员工具将显示类似于以下的错误: 拒绝从以下位置执行脚本 'http://127.0.0.1:57313/static/vendor/require/require.min.js?ver=42800' 因为它的MIME类型('text/plain')不可执行,并且严格 启用了MIME类型检查。 (索引):39未捕获的ReferenceError:在以下位置未定义require (索引):39当注册表项的值位于 HKEY_CLASSES_ROOT\.js\Content Type设置为text/plain。 解决 问题,请使用注册表编辑器并重置 HKEY_CLASSES_ROOT\.js\Content类型为:text/javascript 最后,重新启动pgAdmin服务器