1.2 KiB
1.2 KiB
B-Tree
适用场景
| 场景 | 示例 |
|---|---|
| 等值查询 | WHERE user_id = 100 |
| 范围查询 | WHERE age BETWEEN 20 AND 30 |
| 排序优化 | ORDER BY created_at DESC |
| 前缀匹配 | WHERE name LIKE '张%' |
不适用场景
-
LIKE '%关键词%'(后缀/中间模糊匹配)
-
全文搜索
-
数组包含查询
GIN
结构特点
-
倒排索引(Inverted Index) 机制:从"内容"映射到"行"
-
索引的是复合值内部的独立元素
-
索引构建较慢,但查询性能极佳
适用场景
@>表示包含、<@表示被包含、&&表示重叠、@@表示全文搜索匹配、?表示JSONB 键存在
| 场景 | 示例 |
|---|---|
| 全文搜索 | WHERE to_tsvector(content) @@ to_tsquery('postgresql') |
| 数组包含 | WHERE tags @> ARRAY['java', 'sql'] |
| JSONB 查询 | WHERE data @> '{"status": "active"}' |
| 多值元素搜索 | WHERE arr && ARRAY[1, 2] |