Trouver la taille de disque d'une table PostgreSQL et ses index
- Trouver la taille de disque d’une table et d’une base de données PostgreSQL à l’aide de PSQL
- Trouver la taille de la plus grande table de la base de données
Cet article explique comment nous pouvons trouver la taille du disque d’une table PostgreSQL et de ses index.
Trouver la taille de disque d’une table et d’une base de données PostgreSQL à l’aide de PSQL
Vous pouvez utiliser \l+
pour voir les tailles de la base de données et \d+
pour afficher la taille de la table. Mais avant cela, vous devez vous connecter à la base de données pour effectuer la requête.
Voici la commande et la sortie suivantes pour afficher la taille de la table et de la base de données dans Postgres :
postgres=# \l+
Production:
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)
Ici, il montre toutes les tables avec leur nom, type, propriétaire, taille, méthode d’accès, etc., que nous avons dans la base de données Postgres.
Trouver la taille de la plus grande table de la base de données
Voici un extrait de code que le responsable de Postgres a écrit pour afficher les tailles de table par ordre décroissant.
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;
Production:
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)
Nous avons recherché les 10 plus grandes tables sous postgres
dans la base de données.
Vous pouvez cliquer sur le lien suivant pour en savoir plus sur la taille du disque dans Postgres. Vous trouverez la requête SQL pour trouver le plus grand cluster, les plus grandes relations, les tables partitionnées, etc.
Ici est plus sur les fonctions concernant la taille de la base de données.