Encuentre el tamaño de disco de una tabla de PostgreSQL y sus índices

Shihab Sikder 30 enero 2023
  1. Encuentre el tamaño de disco de una tabla y base de datos de PostgreSQL usando PSQL
  2. Encuentre el tamaño de la tabla más grande en la base de datos
Encuentre el tamaño de disco de una tabla de PostgreSQL y sus índices

Este artículo discutirá cómo podemos encontrar el tamaño de disco de una tabla de PostgreSQL y sus índices.

Encuentre el tamaño de disco de una tabla y base de datos de PostgreSQL usando PSQL

Puede usar \l+ para ver los tamaños de la base de datos y \d+ para mostrar el tamaño de la tabla. Pero antes de esto, debe iniciar sesión en la base de datos para realizar la consulta.

Aquí está el siguiente comando y salida para mostrar el tamaño de la tabla y la base de datos en Postgres:

postgres=# \l+

Producción:

Tamaño de la base de datos

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)

Aquí muestra todas las tablas con su nombre, tipo, propietario, tamaño, método de acceso, etc., que tenemos en la base de datos de Postgres.

Encuentre el tamaño de la tabla más grande en la base de datos

Aquí hay un fragmento de código que el funcionario de Postgres escribió para mostrar los tamaños de las tablas en orden descendente.

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;

Producción :

     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)

Buscamos las 10 tablas más grandes bajo postgres en la base de datos.

Puede hacer clic en el siguiente enlace para conocer más consultas sobre el tamaño del disco en Postgres. Encontrará la consulta SQL para encontrar el clúster más grande, las relaciones más grandes, las tablas particionadas, etc.

Aquí hay más información sobre las funciones relacionadas con el tamaño de la base de datos.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

Artículo relacionado - PostgreSQL Table