pg_table_size('index_name')
pour l'index individuel - mais il ne vous montrera que la taille sur le disque, et non pas la quantité de données
count(1)
pour obtenir le montage actuel exact de lignes
sum(pg_column_size(column_name)) from table_name
pour les estimations sur les données colonne quantité
vous pouvez vous essayer SMTH comme:
t=# \di+ tbl*
List of relations
Schema | Name | Type | Owner | Table | Size | Description
--------+----------------------+-------+----------+----------------+--------+-------------
public | tbl_pkey | index | postgres | tbl | 156 MB |
public | tbl_unpic | index | postgres | tbl | 46 MB |
public | tbl_x1 | index | postgres | tbl | 57 MB |
(3 rows)
t=# \dt+ tbl
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------------+-------+----------+-------+-------------
public | tbl | table | postgres | 78 MB |
(1 row)
t=# select pg_size_pretty(pg_total_relation_size('tbl'));
pg_size_pretty
----------------
337 MB
(1 row)
t=# select 78+57+46+156;
?column?
----------
337
(1 row)
et de vérifier comment psql obtient la taille de l'index individuel, exécutez avec psql -E
..
et encore une fois - les fonctions ci-dessus travail avec la taille il faut du disque - il peut/(ne peut pas) être extrimely différent à partir de la quantité réelle de données. passer l'aspirateur aide ici
mise à jour Je ne sais pas où vous obtenez directement le nombre de « lignes » de l'indice, peut ainsi offrir que de manière indirecte. Par exemple laissez-moi avoir un index partiel, donc "nombre de lignes" est différent de la table. Je peux vérifier les estimations avec EXPLAIN (bien sûr vous devez répéter où la clause pour cela) en vérifiant le rows=66800
en Index Only Scan using
me donne une idée sur le nombre de lignes dans cet index (en fait c'est rows=64910
que vous pouvez obtenir par explain analyze
ou en cours d'exécution count(1)
) . Je ne trouve pas d'informations pertinentes dans pg_stats - il y a peut-être une formule ... non.
'pg_stat_all_indexes'? .. –
pg_stat_all_indexes affiche des statistiques que sur lecture/fetch/scan et non la taille réelle et le nombre de valeurs dans l'indice –
oui, et' pg_indexes_size' que vous mentionnez montre les indices de taille prennent sur le disque, pas la "quantité réelle de données" - je pensais que vous êtes d'accord avec une approximation? :) –