Mysql
 sql >> Database >  >> RDS >> Mysql

Come controllare la dimensione di tutte le tabelle all'interno di un database in MySQL

In MySQL, puoi controllare la dimensione di tutte le tabelle all'interno di un determinato database (o su tutti i database) eseguendo una query su information_schema.tables tavolo. Questa tabella memorizza i dati su ciascuna tabella in un database, comprese le informazioni sulle dimensioni di ciascuna tabella, la data di creazione, le regole di confronto, ecc.

Puoi anche trovare la dimensione di ogni tabella all'interno di un database utilizzando la GUI di MySQL Workbench.

Questo articolo fornisce una rapida panoramica di ciascun metodo.

Esempio di codice

Ecco un esempio di una query SQL che restituisce la dimensione delle tabelle all'interno di un database.

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;

Risultato:

+----------------------------+---------------+-------------+
| 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 |
+----------------------------+---------------+-------------+

Questo restituisce la dimensione di ogni tabella nel sakila Banca dati. Sostituisci sakila con il nome della relativa banca dati. Ovviamente puoi omettere WHERE clausola del tutto, e questo restituirà la dimensione della tabella di tutte le tabelle su tutti i database, ma sarà un lungo elenco.

In questo caso, ho ordinato i risultati in base alle dimensioni della tabella in ordine decrescente. Ho anche aggiunto una colonna con la dimensione convertita in MiB (Mebibyte).

Un altro metodo per convertire la dimensione consiste nell'usare sys.FORMAT_BYTES() funzione.

La funzione sys.FORMAT_BYTES()

Puoi usare sys.FORMAT_BYTES() funzione per convertire la dimensione dei byte in bytes , KiB (kibibyte), MiB (mebibyte), GiB (gibibyte), TiB (tebibyte) o PiB (pebibytes), con l'indicatore delle unità sommato al valore. L'indicatore delle unità viene aggiunto automaticamente. La funzione deciderà in quale unità convertire, a seconda della dimensione del valore, quindi non hai alcun controllo su quale unità utilizzare.

Ecco un esempio di utilizzo di questo metodo:

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;

Risultato:

+----------------------------+---------------+------------------+
| 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          |
+----------------------------+---------------+------------------+

Workbench MySQL

Se stai utilizzando la GUI di MySQL Workbench, puoi puntare e fare clic sulle dimensioni della tabella. Ecco come:

  1. Vai al database in Schemas pannello
  2. Passa il mouse sul database applicabile
  3. Fai clic sulla piccola icona delle informazioni accanto al nome del database. Questo carica le informazioni sul database, incluse le dimensioni approssimative, il conteggio delle tabelle, le regole di confronto, ecc.
  4. Fai clic su Tables scheda. Visualizza le informazioni su ciascuna tabella nel database, inclusa la lunghezza dei dati e la lunghezza dell'indice.