
Btree 索引介绍
BTree:最常用的索引, BTree 索引适合用于处理等值查询和范围查询。 PostgreSQL 的查
询规划器会在使用以下运算符时考虑使用 B-tree 索引:<、<=、=、>=、>、
BETWEEN、IN、IS NULL、IS NOT NULL。
另外,查询规划器在涉及模式匹配运算符 LIKE、~、ILIKE、~*的查询时考虑使用 B-tree 索
引。
B 树具有一些重要的特征:
•B 树是平衡的,也就是说,每个叶子节点与根节点都由相同数量的中间节点分隔开。因此,
搜索任何值都需要花费相同的时间。
• B 树是多分支的,即每个页面(通常为 8 KB)包含许多(数百个)ctid。因此,B 树的深度
很小,对于非常大的表,实际上可以达到 4–5 的深度。当字段超过单个索引页的 1/3 时,不适
合 b-tree 索引。
索引中的数据按非递减顺序排序(在页面之间和每个页面内部),并且同一级别的页面通过•
双向列表相互连接。
因此,可以仅通过列表的一个方向或另一个方向获得有序数据集,而不必每次都返回到根。
索引结构
下面是带整数键的一个字段上的索引的简化示例:
评论