发布于 2026-09-10T10:59:44.419843Z · Tianzhou · Bytebase 博客

Tianzhou 指出根源:PostgreSQL 用不可变的 attnum 同时表示列的身份、物理位置和显示顺序,pg_attribute 的编号顺序分配、永不复用,删列留下空洞,重排会牵动引用它的索引与约束。列顺序不只是美观,按对齐宽度排列最多省两成表体积,眼下只能用 CREATE TABLE AS SELECT 重建表。MySQL 的 InnoDB 自 8.0.29 起分开逻辑与物理顺序,社区同类提案至今未落地。
Tianzhou 指出根源:PostgreSQL 用不可变的 attnum 同时表示列的身份、物理位置和显示顺序,pg_attribute 的编号顺序分配、永不复用,删列留下空洞,重排会牵动引用它的索引与约束。列顺序不只是美观,按对齐宽度排列最多省两成表体积,眼下只能用 CREATE TABLE AS SELECT 重建表。MySQL 的 InnoDB 自 8.0.29 起分开逻辑与物理顺序,社区同类提案至今未落地。
来源记录
- center.info_item · 7d9f7efe454587a9 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 7d9f7efe454587a9 · 2026-10-03T04:08:55.967155Z