PostgreSQL 生成列与表达式索引实践


ALTER TABLE orders ADD COLUMN total NUMERIC GENERATED ALWAYS AS (price * quantity) STORED;
CREATE INDEX idx_orders_total ON orders (total);

CREATE INDEX idx_users_lower_name ON users ((lower(name)));
EXPLAIN SELECT * FROM users WHERE lower(name) = 'alice';

总结

生成列适合可派生的稳定表达式,表达式索引可优化函数条件查询,二者结合提升整体性能。

生成列与表达式索引

生成列存储表达式结果,列上建立索引可加速对应的函数查询。

  • STORED 生成列:写入时计算并存储
  • 表达式索引:CREATE INDEX ON tbl (lower(col))
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
网站二维码

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
/* 跳过导航链接 (无障碍) */ position: absolute; top: -100px; left: 15px; z-index: 99999; padding: 8px 16px; background: #007bff; color: #fff; font-size: 14px; border-radius: 0 0 4px 4px; text-decoration: none; transition: top 0.2s; } top: 0; outline: 3px solid #0056b3; }