sql >> Base de Datos >  >> RDS >> Mysql

Cómo verificar el tamaño de todas las tablas dentro de una base de datos en MySQL

En MySQL, puede verificar el tamaño de todas las tablas dentro de una base de datos determinada (o en todas las bases de datos) consultando information_schema.tables mesa. Esta tabla almacena datos sobre cada tabla en una base de datos, incluida información sobre el tamaño de cada tabla, la fecha de creación, la intercalación, etc.

También puede encontrar el tamaño de cada tabla dentro de una base de datos utilizando la GUI de MySQL Workbench.

Este artículo proporciona una descripción general rápida de cada método.

Ejemplo de código

Aquí hay un ejemplo de una consulta SQL que devuelve el tamaño de las tablas dentro de una base de datos.

SELECT 
    table_name 'Table Name',
    data_length + index_length 'Size in Bytes',
    ROUND(((data_length + index_length) / 1024 / 1024), 2) 'Size in MiB'
FROM information_schema.tables
WHERE table_schema = 'sakila'
ORDER BY (data_length + index_length) DESC;

Resultado:

+----------------------------+---------------+-------------+
| Table Name                 | Size in Bytes | Size in MiB |
+----------------------------+---------------+-------------+
| rental                     |       2785280 |        2.66 |
| payment                    |       2228224 |        2.13 |
| inventory                  |        376832 |        0.36 |
| film                       |        278528 |        0.27 |
| film_actor                 |        278528 |        0.27 |
| film_text                  |        196608 |        0.19 |
| customer                   |        131072 |        0.13 |
| address                    |        114688 |        0.11 |
| staff                      |         98304 |        0.09 |
| film_category              |         81920 |        0.08 |
| city                       |         65536 |        0.06 |
| store                      |         49152 |        0.05 |
| actor                      |         32768 |        0.03 |
| country                    |         16384 |        0.02 |
| language                   |         16384 |        0.02 |
| category                   |         16384 |        0.02 |
| staff_list                 |             0 |        0.00 |
| customer_list              |             0 |        0.00 |
| nicer_but_slower_film_list |             0 |        0.00 |
| actor_info                 |             0 |        0.00 |
| sales_by_film_category     |             0 |        0.00 |
| film_list                  |             0 |        0.00 |
| sales_by_store             |             0 |        0.00 |
+----------------------------+---------------+-------------+

Esto devuelve el tamaño de cada tabla en el sakila base de datos. Reemplazar sakila con el nombre de la base de datos correspondiente. Por supuesto, puede omitir WHERE cláusula por completo, y esto devolverá el tamaño de tabla de todas las tablas en todas las bases de datos, pero será una lista larga.

En este caso, ordené los resultados por tamaño de tabla en orden descendente. También agregué una columna con el tamaño convertido a MiB (Mebibytes).

Otro método para convertir el tamaño es usar sys.FORMAT_BYTES() función.

La función sys.FORMAT_BYTES()

Puede usar sys.FORMAT_BYTES() función para convertir el tamaño de bytes en bytes , KiB (kibibytes), MiB (mebibytes), GiB (gibibytes), TiB (tebibytes) o PiB (pebibytes), con el indicador de unidades añadido al valor. El indicador de unidades se agrega automáticamente. La función decidirá en qué unidad convertir, según el tamaño del valor, por lo que no tiene ningún control sobre qué unidad usar.

Aquí hay un ejemplo del uso de este método:

SELECT 
    table_name 'Table Name',
    data_length + index_length 'Size in Bytes',
    sys.FORMAT_BYTES((data_length + index_length)) 'Size (Formatted)'
FROM information_schema.tables
WHERE table_schema = 'sakila'
ORDER BY (data_length + index_length) DESC;

Resultado:

+----------------------------+---------------+------------------+
| Table Name                 | Size in Bytes | Size (Formatted) |
+----------------------------+---------------+------------------+
| rental                     |       2785280 | 2.66 MiB         |
| payment                    |       2228224 | 2.12 MiB         |
| inventory                  |        376832 | 368.00 KiB       |
| film                       |        278528 | 272.00 KiB       |
| film_actor                 |        278528 | 272.00 KiB       |
| film_text                  |        196608 | 192.00 KiB       |
| customer                   |        131072 | 128.00 KiB       |
| address                    |        114688 | 112.00 KiB       |
| staff                      |         98304 | 96.00 KiB        |
| film_category              |         81920 | 80.00 KiB        |
| city                       |         65536 | 64.00 KiB        |
| store                      |         49152 | 48.00 KiB        |
| actor                      |         32768 | 32.00 KiB        |
| category                   |         16384 | 16.00 KiB        |
| country                    |         16384 | 16.00 KiB        |
| language                   |         16384 | 16.00 KiB        |
| actor_info                 |             0 | 0 bytes          |
| customer_list              |             0 | 0 bytes          |
| film_list                  |             0 | 0 bytes          |
| nicer_but_slower_film_list |             0 | 0 bytes          |
| sales_by_film_category     |             0 | 0 bytes          |
| sales_by_store             |             0 | 0 bytes          |
| staff_list                 |             0 | 0 bytes          |
+----------------------------+---------------+------------------+

Mesa de trabajo MySQL

Si está utilizando la GUI de MySQL Workbench, puede apuntar y hacer clic en su camino hacia los tamaños de tabla. Así es como:

  1. Navegue a la base de datos en Schemas panel
  2. Pase el cursor sobre la base de datos correspondiente
  3. Haga clic en el pequeño icono de información junto al nombre de la base de datos. Esto carga información sobre la base de datos, incluido su tamaño aproximado, número de tablas, intercalación, etc.
  4. Haga clic en Tables pestaña. Esto muestra información sobre cada tabla en la base de datos, incluida la longitud de los datos y la longitud del índice.