如何预测 PostgreSQL 索引大小
是否可以预测 PostgreSQL 9.0 中基本索引将使用的磁盘空间/内存量?
例如,如果我在一个 100 万行的表中的整数列上有一个默认的 B 树索引,那么该索引将占用多少空间?整个索引是否始终保存在内存中?
Is it possible to predict the amount of disk space/memory that will be used by a basic index in PostgreSQL 9.0?
E.g. If I have a default B-tree index on an integer column in a table of 1 million rows, how much space would be taken up by the index? Is the entire index held in memory at all times?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
并不是一个明确的答案,但我查看了 9.0 测试系统中的一个表,该表在 280k 行的表上有几个 int 索引。所有索引的大小均为 6232kb。每行大约 22 个字节。
Not really a definitive answer, but I looked at a table in a 9.0 test system I have with a couple of int indexes on a table of 280k rows. The indexs all report a size of 6232kb. So roughly 22 bytes per row.
没有办法这样说。这取决于您将进行的操作类型,因为 PostgreSQL 存储同一行的许多不同版本,包括存储在索引文件中的行版本。
只需制作您感兴趣的表格并检查即可。
There is no way to say that. It depends on the type of operations you will make, as PostgreSQL stores many different versions of the same row, including row versions stored in index files.
Just make the table you are interested in and check it.