sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad er forskellen mellem pg_table_size, pg_relation_size og pg_total_relation_size? (PostgreSQL)

For en tilfældig tabel:

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

Ud fra det kan du fortælle pg_table_size er summen af ​​alle returværdierne for pg_relation_size . Og pg_total_relation_size er summen af ​​pg_table_size og pg_indexes_size .

Hvis du vil vide, hvor meget plads dine tabeller bruger, skal du bruge pg_table_size og pg_total_relation_size at tænke på dem -- et tal er kun tabel, og et tal er tabel + indekser.

Tjek lagerfillayoutet for information om hvad fsm , vm , og init betyder, og hvordan de er gemt på disken.



  1. Fuldtekstsøgning i Postgres eller CouchDB?

  2. Codeigniter-transaktioner

  3. hvordan man konverterer csv til tabel i oracle

  4. Indsamlingsmetode:SLET-procedure i Oracle-databasen