我在Mac Sierra上使用Postgres 9.5.1。我在我的桌面上創建了以下索引如何測量Postgres索引佔用的磁盤空間?
CREATE INDEX my_object_times_name_gin_trgm_idx
ON my_object_times USING gin (name gin_trgm_ops);
如何測量此索引在磁盤上佔用多少磁盤空間?我想比較一下,如果我創建另一種類型的索引,將被起訴的空間。請注意,我不關心表中數據的大小,只關注索引佔用的存儲空間。
我在Mac Sierra上使用Postgres 9.5.1。我在我的桌面上創建了以下索引如何測量Postgres索引佔用的磁盤空間?
CREATE INDEX my_object_times_name_gin_trgm_idx
ON my_object_times USING gin (name gin_trgm_ops);
如何測量此索引在磁盤上佔用多少磁盤空間?我想比較一下,如果我創建另一種類型的索引,將被起訴的空間。請注意,我不關心表中數據的大小,只關注索引佔用的存儲空間。
您可以使用pg_relation_size()
爲,e.g:
select pg_relation_size('my_object_times_name_gin_trgm_idx');
大小是以字節爲單位。如果你想以「人類可讀」的方式格式化,你可以使用pg_size_pretty()
select pg_size_pretty(pg_relation_size('my_object_times_name_gin_trgm_idx'));
您會在這裏發現一些有趣的腳本:Disk Usage
SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END AS SIZE
FROM pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_database_size(d.datname)
ELSE NULL
END DESC -- nulls first
LIMIT 20