Postgresql 奇怪的索引大小

标签 postgresql indexing b-tree

我有一个包含 ~8M 记录的表,其中包含不同类型的字段 b-tree 索引。 通过调查索引大小,我发现了两件奇怪的事情: 1- 所有索引大小几乎相同,无论字段类型如何( bool 值、字符串、整数) 2 - 所有这些都比我的预期大得多,例如对于 bool 字段,即使在重建索引之后,大小也是 217MB,因此每条记录占用约 27 个字节。

有人可以阐明这一点吗?或引用任何有关索引大小估计的面向用户的文档

最佳答案

This page解释了 Postgresql 的 b-tree 是如何实现的。 Here是 Postgresql 开发人员的自述文件。

btree page

关于Postgresql 奇怪的索引大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016716/

相关文章:

mysql - 奇怪的 MySQL SELECT 执行时间

mongodb - 为什么字段上的索引的大小取决于它在 MongoDB 中是升序还是降序

postgresql - 为什么 Postgresql 在创建 gin 索引时必须在列名周围加上引号?

c# - B 树节点通常如何表示?

mysql - BTREE的优势?

postgresql - “LANGUAGE ' plpgsql'VOLATILE”是什么意思?

python - 升级后,原始 sql 查询在 postgres 上将 json 字段作为字符串返回

sql - 如何从批处理文件执行 postgres 的 sql 查询?

ruby-on-rails - Rails 4 - 为表单中关联表中的行分配值

c++ - 想要打印出 "pretty"btree