索引管理
索引是提升数据库查询性能的关键技术。通过为常用查询字段建立索引,可以显著提升查询速度和用户体验。
如何创建索引
- 控制台操作
- SQL 语句操作
- 访问 云开发平台/PostgreSQL 数据库。
- 选择目标环境和数据库表,进入「索引管理」。
- 点击「新建索引」。
- 填写索引名称,选择索引类型、字段和排序方向。
- 确认配置后提交,等待索引创建完成。
控制台操作适合创建常规单字段索引、多字段索引和唯一索引。复杂表达式索引、部分索引、并发创建索引等高级场景,建议使用 SQL 语句操作。
可以通过 SQL 语句创建索引。以下示例默认使用 PostgreSQL 标准 SQL 语法。
-- 单字段索引
CREATE INDEX orders_user_id_idx
ON public.orders (user_id);
-- 多字段索引
CREATE INDEX orders_user_status_idx
ON public.orders (user_id, status);
-- 唯一索引
CREATE UNIQUE INDEX users_email_unique_idx
ON public.users (email);
-- GIN 索引,适合 jsonb、array、全文搜索等场景
CREATE INDEX articles_tags_gin_idx
ON public.articles
USING GIN (tags);
对于生产环境中的大表,可以使用 CONCURRENTLY 减少创建索引时对写入的阻塞:
CREATE INDEX CONCURRENTLY orders_created_at_idx
ON public.orders (created_at);
CREATE INDEX CONCURRENTLY 不能在事务块中执行。建议先在测试环境验证 SQL 语句,并在业务低峰期执行。
PostgreSQL 索引类型
PostgreSQL 提供了丰富的索引类型,适用于不同的查询场景:
| 索引类型 | 说明 | 适用场景 |
|---|---|---|
| B-tree | 默认索引类型,支持等值和范围查询 | 大多数常规查询场景,=、<、>、BETWEEN、ORDER BY 等 |
| Hash | 哈希索引,仅支持等值查询 | 仅需等值匹配的场景,如精确查找 |
| GIN | 通用倒排索引(Generalized Inverted Index) | JSONB 字段查询、数组包含查询、全文搜索 |
| GiST | 通用搜索树(Generalized Search Tree) | 几何数据、全文搜索、范围类型、最近邻查询 |
| BRIN | 块范围索引(Block Range Index) | 大型顺序数据表(如时间序列数据),占用空间极小 |
提示
关于各索引类型的详细说明和创建语法,请参阅 PostgreSQL 官方文档 - Indexes。