sql >> Databáze >  >> RDS >> PostgreSQL

Velikost indexu PostgreSQL a číslo hodnoty

pg_table_size('index_name') pro individuální index – zobrazí vám však pouze velikost na disku, nikoli množství dat

count(*) získat přesný aktuální počet řádků

sum(pg_column_size(column_name)) from table_name pro odhady množství dat ve sloupcích

můžete si vyzkoušet něco jako:

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)

a chcete-li zkontrolovat, jak psql získává individuální velikost indexu, spusťte jej pomocí psql -E ..

a ještě jednou - výše uvedené funkce pracují s velikostí disku - ta se může/(nemusí) výrazně lišit od skutečného množství dat. zde pomáhá vysávání

aktualizovat Nevím, kde přímo získáte počet "řádků" v indexu, takže mohu nabídnout pouze nepřímou cestu. Např. dovolte mi mít částečný index, takže "počet řádků" se liší od tabulky. Mohu zkontrolovat odhady pomocí EXPLAIN (pro to musíte samozřejmě zopakovat klauzuli where) kontrolou rows=66800 v Index Only Scan using dává mi představu o počtu řádků v tomto indexu (ve skutečnosti je to rows=64910 kterou můžete získat pomocí explain analyze nebo stačí spustit count(*) ). Nemohu najít relevantní informace v pg_stats - možná je tam nějaký vzorec. Nevím.



  1. Analytické funkce LEAD a LAG

  2. PostgreSQL přejmenovat atribut v poli jsonb

  3. Vícenásobné vztahy jedna až mnoho v GORM

  4. PostgreSQL - Instalace ovladače JDBC