====== PostgresQL ======
* [[https://www.postgresql.org|Official site]]
* [[https://mp.weixin.qq.com/s/xf7qb4oAVHyi4_U32FSKPA|全方位对比 Postgres 和 MySQL (2023 版)]]
* 对象层次结构,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 , 对大数据集性能有提升。[[https://maciejwalkowiak.com/blog/postgres-uuid-primary-key/|postgres-uuid-primary-key]]
===== pgAdmin =====
* [[https://www.pgadmin.org/|pgadmin.org]]
* 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服务器