避免使用 UUID 第 4 版主键(适用于 Postgres)

鉴于其性能缺陷、普遍误解及可替代方案的存在,我最终形成了一个简单立场:全面避免使用UUID,

一切皆可Postgres

用PostgreSQL替代Redis、MongoDB、Kafka等数据库。降低复杂度,提升开发速度。简化技术栈。

Postgres 17 与 18 版本性能对比

18版本新增两种替代方案:worker和io_uring。worker(新默认值)会让Postgres使用专用的后台工作进程处理所有I/O操作。io_uring因性能优势备受期待,它利用Linux的io_uring接口实现所有磁盘读取的异步处理,有望显著提升I/O性能。

探索 PostgreSQL 18 的全新 UUIDv7 支持

Postgres 18 中引入的 UUIDv7 解决了将完全随机的 UUIDv4 用作主键时存在的性能缺陷。通过加入时间戳,UUIDv7 确保新生成标识符具有天然排序性,从而实现高效的顺序插入、提升缓存利用率并减少索引碎片。

全面解读 PostgreSQL 18 新功能

全面盘点 PostgreSQL 18 的新特性、性能优化、运维与可观测性改进,以及面向开发者的新工具。

UUIDv7 登陆 PostgreSQL 18

PostgreSQL 18新增函数uuidv7()用于生成UUIDv7值。其实现包含标准允许但非强制要求的12位亚毫秒级时间戳小数部分,确保同一Postgres会话(即相同后端进程)生成的所有UUIDv7值具有单调性。

Postgres 18:RETURNING子句中的OLD和NEW行

本次发布新增功能:在INSERT、UPDATE、DELETE和MERGE命令的RETURNING子句中,可同时访问旧值(OLD)和新值(NEW)。

如果我们将Postgres当作SQLite使用会怎样?

Postgres的扩展功能开箱即用。而在SQLite中,每次使用数据库时都需重新加载扩展,且必须在客户端系统上编译并安装。Postgres显然不存在此类问题,因其采用服务器-客户端架构,所有必要扩展均预装在服务器端。


京ICP备12002735号