如何测量Postgres索引占用的磁盘空间?

Dav*_*ave 3 postgresql indexing storage

我在Mac Sierra上使用Postgres 9.5.1。我在表上创建了以下索引

CREATE INDEX my_object_times_name_gin_trgm_idx 
ON my_object_times USING gin (name gin_trgm_ops);
Run Code Online (Sandbox Code Playgroud)

如何测量该索引在磁盘上占用了多少磁盘空间?我想将其与创建另一种类型的索引所要使用的空间进行比较。注意,我不在乎表中数据的大小,只在乎索引所占用的存储空间。

a_h*_*ame 8

您可以使用pg_relation_size()它,例如:

select pg_relation_size('my_object_times_name_gin_trgm_idx');
Run Code Online (Sandbox Code Playgroud)

大小以字节为单位。如果您希望以“人类可读”的方式设置格式,则可以使用pg_size_pretty()

select pg_size_pretty(pg_relation_size('my_object_times_name_gin_trgm_idx'));
Run Code Online (Sandbox Code Playgroud)