目录

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. 📚 下一步

学习配置参数调优