首页 > 解决方案 > 为什么在 postgres 中默认索引在 b 树而不是 B+ 树上

问题描述

到目前为止,我在 Postgres 的文档中看到,当我们想要索引某个列时,它默认使用 B 树作为索引的数据结构,但是 B+ 树比 B 树快得多,所以为什么默认索引在 B 树上而不是在 B+ 树上。

供参考(B+ 树如何更好):https ://www.tutorialcup.com/dbms/b-tree.htm

所以我的问题是:为什么他们默认不使用 B+ 树进行索引。

标签: postgresqlindexingb-tree

解决方案


我不是这方面的专家,但在 PostgreSQL 中使用 B+ 树而不是常规 B 树进行索引似乎没有什么好处。

来自维基百科

Postgres 中的普通(“btree”类型)索引不是 B+ 树。B+ 树和 B 树之间的区别首先对于数据库索引来说是一种废话——索引本身的所有列都是查找键,它们在叶级别与任何其他级别相同。记录本身通常存储在一个单独的结构中——在 Postgres 的情况下,它是表堆。


推荐阅读