## 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] |