HOWTO · PostgreSQL

Ermittlung der Festplattengröße einer PostgreSQL-Tabelle und ihrer Indizes

In diesem Artikel wird erläutert, wie wir die Festplattengröße einer PostgreSQL-Tabelle und ihrer Indizes ermitteln können. Mit dem Befehl \l+ können wir die Datenbankgrößen anzeigen und mit \d+ können wir die Tabellengrößen anzeigen.

Auf dieser Seite

In diesem Artikel wird erläutert, wie wir die Festplattengröße einer PostgreSQL-Tabelle und ihrer Indizes ermitteln können.

Finden Sie die Festplattengröße einer PostgreSQL-Tabelle und -Datenbank mit PSQL

Sie können das \l+ verwenden, um die Datenbankgrössen anzuzeigen und \d+, um die Tabellengrösse anzuzeigen. Aber vorher müssen Sie sich bei der Datenbank anmelden, um die Abfrage durchzuführen.

Hier ist der folgende Befehl und die Ausgabe zum Anzeigen der Tabellen- und Datenbankgröße in Postgres:

postgres=# \l+

Ausgabe:

Datenbankgröße

postgres-# \d+
                                            List of relations
 Schema |       Name       |   Type   |  Owner   | Persistence | Access method |    Size    | Description
--------+------------------+----------+----------+-------------+---------------+------------+-------------
 public | book_lends       | table    | postgres | permanent   | heap          | 16 kB      |
 public | books            | table    | postgres | permanent   | heap          | 16 kB      |
 public | employee         | table    | postgres | permanent   | heap          | 16 kB      |
 public | employee_id_seq  | sequence | postgres | permanent   |               | 8192 bytes |
 public | events           | table    | postgres | permanent   | heap          | 16 kB      |
 public | mock_data        | table    | postgres | permanent   | heap          | 48 kB      |
 public | product          | table    | postgres | permanent   | heap          | 16 kB      |
 public | product_id_seq   | sequence | postgres | permanent   |               | 8192 bytes |
 public | products         | table    | postgres | permanent   | heap          | 16 kB      |
 public | products_id_seq  | sequence | postgres | permanent   |               | 8192 bytes |
 public | prroducts        | table    | postgres | permanent   | heap          | 8192 bytes |
 public | prroducts_id_seq | sequence | postgres | permanent   |               | 8192 bytes |
 public | stores           | table    | postgres | permanent   | heap          | 16 kB      |
 public | stores_id_seq    | sequence | postgres | permanent   |               | 8192 bytes |
 public | users            | table    | postgres | permanent   | heap          | 16 kB      |
(15 rows)

Hier werden alle Tabellen mit Name, Typ, Eigentümer, Größe, Zugriffsmethode usw. angezeigt, die wir in der Postgres-Datenbank haben.

Ermitteln Sie die Größe der größten Tabelle in der Datenbank

Hier ist ein Code-Snippet, das ein Postgres-Beamter geschrieben hat, um die Tabellengrößen in absteigender Reihenfolge anzuzeigen.

SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
    AND C.relkind <> 'i'
    AND nspname !~ '^pg_toast'
  ORDER BY pg_total_relation_size(C.oid) DESC
  LIMIT 10;

Ausgabe:

     relation      | total_size
-------------------+------------
 public.mock_data  | 48 kB
 public.product    | 32 kB
 public.products   | 32 kB
 public.books      | 32 kB
 public.book_lends | 32 kB
 public.employee   | 32 kB
 public.stores     | 32 kB
 public.users      | 32 kB
 public.events     | 16 kB
 public.prroducts  | 16 kB
(10 rows)

Wir haben in der Datenbank unter postgres nach den 10 grössten Tabellen gesucht.

Sie können auf den folgenden Link klicken, um weitere Abfragen zur Festplattengröße in Postgres zu erhalten. Sie finden die SQL-Abfrage zum Auffinden des größten Clusters, der größten Relationen, partitionierten Tabellen usw.

Hier mehr zu den Funktionen bezüglich der Datenbankgröße.