sql >> Databasteknik >  >> RDS >> PostgreSQL

Vad är skillnaden mellan pg_table_size, pg_relation_size och pg_total_relation_size? (PostgreSQL)

För en slumpmässig tabell:

# 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)

Från det kan du se pg_table_size är summan av alla returvärden för pg_relation_size . Och pg_total_relation_size är summan av pg_table_size och pg_indexes_size .

Om du vill veta hur mycket utrymme dina tabeller använder, använd pg_table_size och pg_total_relation_size att tänka på dem -- en siffra är endast tabell, och en siffra är tabell + index.

Kontrollera lagringsfilens layout för lite information om vad fsm , vm och init betyder och hur de lagras på disken.



  1. Oracle-certifieringar

  2. Undantag:Det finns redan en öppen DataReader kopplad till denna anslutning som måste stängas först

  3. Bemästra användningen av stopplistor med SQL Server Full-Text Search (FTS)

  4. Konvertera float till varchar i SQL Server utan vetenskaplig notation