08-PGIndex是什么,具体指什么内容?

摘要:Index 常用三种索引 特性 BTree GIN Hash 查询类型 等值、范围、排序 包含、存在、全文搜索 仅等值 数据结构 平衡树 倒排索引 哈希表 插入速度 中等 较慢 快 查询速度 快 非常快(特定查询) 极快(等值查询) 索引大
Index 常用三种索引 特性 BTree GIN Hash 查询类型 等值、范围、排序 包含、存在、全文搜索 仅等值 数据结构 平衡树 倒排索引 哈希表 插入速度 中等 较慢 快 查询速度 快 非常快(特定查询) 极快(等值查询) 索引大小 中等 较大 中等 支持事务 是 是 是(10+) 并发控制 支持 支持 支持 NULL处理 支持 支持 支持 最常用 ✓ 默认选择 ✓ 多值类型 △ 特定场景 BTree 平衡树结构,支持范围查询和排序 PostgreSQL 的默认索引类型 支持 =, <, <=, >, >=, BETWEEN, IN, IS NULL, IS NOT NULL GIN 通用倒排索引,适用于多值类型 支持全文搜索、数组、JSON、范围类型 查询快,但插入和更新较慢 索引体积较大 Hash 哈希表结构,只支持等值查询 (=) 查询速度非常快(理论上 O(1)) 不支持范围查询、排序 在 PostgreSQL 10+ 支持 WAL 日志(崩溃安全) 通常不如 BTree 实用 简而言之,范围查询用BTree,数据,JSON用GIN,等值用Hash. 先创建一个有300w行数据的表,方便后面测试。
阅读全文