pgsql-22 索引优化策略
目录
22 - 索引优化策略
1. 📖 概述
索引是提升查询性能的关键,本章介绍索引优化的最佳实践。
2. 🎯 索引策略
2.1 何时创建索引
-- WHERE子句频繁使用的列
CREATE INDEX idx_users_email ON users(email);
-- JOIN条件列
CREATE INDEX idx_orders_user_id ON orders(user_id);
-- ORDER BY列
CREATE INDEX idx_posts_created ON posts(created_at DESC);
-- 复合索引
CREATE INDEX idx_orders_user_status_date ON orders(user_id, status, created_at DESC);
2.2 索引类型选择
- B-tree: 默认,适用于大多数场景
- GIN: JSONB、数组、全文搜索
- GiST: 范围类型、几何数据
- BRIN: 大表、自然排序的列
- Hash: 等值查询(少用)
3. 📊 监控索引使用
-- 查看未使用的索引
SELECT
schemaname, tablename, indexname, idx_scan
FROM pg_stat_user_indexes
WHERE idx_scan = 0 AND indexrelname NOT LIKE '%_pkey';
-- 查看索引大小
SELECT
indexname,
pg_size_pretty(pg_relation_size(indexrelid)) AS size
FROM pg_stat_user_indexes
ORDER BY pg_relation_size(indexrelid) DESC;
4. 📚 下一步
学习配置参数调优
xingliuhua