2016-11-22 120 views
1

我在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); 

如何測量此索引在磁盤上佔用多少磁盤空間?我想比較一下,如果我創建另一種類型的索引,將被起訴的空間。請注意,我不關心表中數據的大小,只關注索引佔用的存儲空間。

回答

2

您可以使用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')); 
0

您會在這裏發現一些有趣的腳本: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 
相關問題