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

Jaký je rozdíl mezi pg_table_size, pg_relation_size a pg_total_relation_size? (PostgreSQL)

Pro náhodnou tabulku:

# select pg_relation_size(20306, 'main') as main,
  pg_relation_size(20306, 'fsm') as fsm,
  pg_relation_size(20306, 'vm') as vm,
  pg_relation_size(20306, 'init') as init,
  pg_table_size(20306), pg_indexes_size(20306) as indexes,
  pg_total_relation_size(20306) as total;
  main  |  fsm  |  vm  | init | pg_table_size | indexes |  total 
--------+-------+------+------+---------------+---------+--------
 253952 | 24576 | 8192 |    0 |        286720 |  196608 | 483328
(1 row)

Z toho můžete zjistit pg_table_size je součet všech návratových hodnot pg_relation_size . A pg_total_relation_size je součet pg_table_size a pg_indexes_size .

Pokud chcete vědět, kolik místa zabírají vaše tabulky, použijte pg_table_size a pg_total_relation_size přemýšlet o nich -- jedno číslo je pouze tabulka a jedno číslo je tabulka + indexy.

Podívejte se na rozložení souboru úložiště, kde najdete nějaké informace o fsm , vm a init a jak jsou uloženy na disku.



  1. Zobrazení dat z databáze pomocí základního adaptéru a zobrazení seznamu

  2. INSERT pomocí SELECT

  3. Převést „datetime“ na „datetime2“ v SQL Server (příklady T-SQL)

  4. Jak CHR() funguje v MariaDB