↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

每多一个索引,写入就多缴一次固定税 RSS

Matty Stratton 从写放大的角度解释索引为何反噬写入:一张带 5 个索引的表每插入一行要落 6 次写,1 次堆写加 5 次索引写,在 5 万行每秒的摄入速率下就是每秒 30 万次写,带来大量 I/O 与 WAL 膨胀。时间戳这类单调递增列还有「热右边缘」问题,B-tree 最右侧叶页持续分裂。由此形成回路:索引拖慢写入,缓冲区压力上升,查询变慢,于是再加索引。每秒 500 行时无碍的索引数量,到 5 万行每秒就成了问题。

发布于 2026-09-10T10:59:37.393505Z · Matty Stratton · TigerData 博客
写入 性能 索引

Matty Stratton 从写放大的角度解释索引为何反噬写入:一张带 5 个索引的表每插入一行要落 6 次写,1 次堆写加 5 次索引写,在 5 万行每秒的摄入速率下就是每秒 30 万次写,带来大量 I/O 与 WAL 膨胀。时间戳这类单调递增列还有「热右边缘」问题,B-tree 最右侧叶页持续分裂。由此形成回路:索引拖慢写入,缓冲区压力上升,查询变慢,于是再加索引。每秒 500 行时无碍的索引数量,到 5 万行每秒就成了问题。

Matty Stratton 从写放大的角度解释索引为何反噬写入:一张带 5 个索引的表每插入一行要落 6 次写,1 次堆写加 5 次索引写,在 5 万行每秒的摄入速率下就是每秒 30 万次写,带来大量 I/O 与 WAL 膨胀。时间戳这类单调递增列还有「热右边缘」问题,B-tree 最右侧叶页持续分裂。由此形成回路:索引拖慢写入,缓冲区压力上升,查询变慢,于是再加索引。每秒 500 行时无碍的索引数量,到 5 万行每秒就成了问题。

原始来源 ↗

来源记录
  • center.info_item · 6dfee5b6da1ed777 · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 6dfee5b6da1ed777 · 2026-10-03T04:08:55.967155Z