发布于 2026-09-10T10:59:38.076086Z · Jake Hertz · TigerData 博客

在数亿行、高并发的 PostgreSQL 上,Jake Hertz 实测 SELECT * 这类通配符查询会把性能拉低九成以上。开销来自三处:不必要的 I/O、缓冲区缓存被污染,以及多余列的序列化传输。执行时整页 8KB 会被读入内存,所有列都要过一遍 MVCC 可见性判断,再序列化送上网络;宽行让每页装下的记录更少,读放大随之加剧。结论很朴素:只取真正用到的列。
在数亿行、高并发的 PostgreSQL 上,Jake Hertz 实测 SELECT * 这类通配符查询会把性能拉低九成以上。开销来自三处:不必要的 I/O、缓冲区缓存被污染,以及多余列的序列化传输。执行时整页 8KB 会被读入内存,所有列都要过一遍 MVCC 可见性判断,再序列化送上网络;宽行让每页装下的记录更少,读放大随之加剧。结论很朴素:只取真正用到的列。
来源记录
- center.info_item · 44f40e8fb01ec19c · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 44f40e8fb01ec19c · 2026-10-03T04:08:55.967155Z