---
title: PostgreSQL 索引优化:BTREE、GIN、BRIN 的正确使用
keywords:
- PostgreSQL
- 索引
- BTREE
- GIN
- BRIN
- 查询计划
- EXPLAIN
description: 匹配不同数据与查询模式的索引类型选择与优化方法,附常用命令与查询计划解析思路。
author: 数据库工程团队
date: '2025-11-18'
status: published
hotness: 86
tech_verified: true
reading_time: 13分钟
tags:
- B-Tree
- BRIN
- EXPLAIN
- GIN
- PostgreSQL
- 查询计划
- 索引
categories:
- 文章资讯
- 技术教程
---
何时选择哪种索引
- BTREE:等值与范围查询的默认选择;支持排序优化
- GIN:全文检索与数组/JSONB 包含查询,需结合
gin_trgm_ops或合适操作符类 - BRIN:适合巨大表且数据具有物理顺序相关性(如时间序),占用小且建索引快
常用命令
- 创建索引:
CREATE INDEX idx ON t USING BTREE (col); - 查看查询计划:
EXPLAIN (ANALYZE, BUFFERS) SELECT ...; - 维护:定期
VACUUM/ANALYZE,监控膨胀与统计信息准确性
优化思路
- 依据查询模式选择合适列与操作符类
- 复合索引列顺序与选择性相关;避免无效前导列
- 使用部分索引优化热点或稀疏数据
注意事项
- 过多索引影响写入与维护成本
- GIN 索引构建较慢且占用大,需评估

发表评论 取消回复