Dans MySQL, vous pouvez vérifier la taille de toutes les tables d'une base de données donnée (ou de toutes les bases de données) en interrogeant information_schema.tables
table. Cette table stocke des données sur chaque table dans une base de données, y compris des informations sur la taille, la date de création, le classement, etc. de chaque table.
Vous pouvez également trouver la taille de chaque table dans une base de données en utilisant l'interface graphique de MySQL Workbench.
Cet article fournit un aperçu rapide de chaque méthode.
Exemple de code
Voici un exemple de requête SQL qui renvoie la taille des tables d'une base de données.
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;
Résultat :
+----------------------------+---------------+-------------+ | 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 | +----------------------------+---------------+-------------+
Cela renvoie la taille de chaque table dans le sakila
base de données. Remplacer sakila
avec le nom de la base de données concernée. Bien sûr, vous pouvez omettre le WHERE
clause au total, et cela renverra la taille de table de toutes les tables sur toutes les bases de données, mais ce sera une longue liste.
Dans ce cas, j'ai classé les résultats par taille de table dans l'ordre décroissant. J'ai également ajouté une colonne avec la taille convertie en MiB (Mebibytes).
Une autre méthode de conversion de la taille consiste à utiliser le sys.FORMAT_BYTES()
fonction.
La fonction sys.FORMAT_BYTES()
Vous pouvez utiliser le sys.FORMAT_BYTES()
fonction pour convertir la taille des octets en bytes
, KiB
(kibioctets), MiB
(mébioctets), GiB
(gibioctets), TiB
(tébioctets), ou PiB
(pébioctets), avec l'indicateur d'unités ajouté à la valeur. L'indicateur d'unités est ajouté automatiquement. La fonction décidera dans quelle unité convertir, en fonction de la taille de la valeur, vous n'avez donc aucun contrôle sur l'unité à utiliser.
Voici un exemple d'utilisation de cette méthode :
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;
Résultat :
+----------------------------+---------------+------------------+ | 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 | +----------------------------+---------------+------------------+
Atelier MySQL
Si vous utilisez l'interface graphique de MySQL Workbench, vous pouvez pointer et cliquer pour accéder aux tailles de table. Voici comment :
- Accédez à la base de données dans les
Schemas
volet - Passez la souris sur la base de données applicable
- Cliquez sur la petite icône d'information à côté du nom de la base de données. Cela charge des informations sur la base de données, y compris sa taille approximative, le nombre de tables, le classement, etc.
- Cliquez sur
Tables
languette. Cela affiche des informations sur chaque table de la base de données, y compris la longueur des données et la longueur de l'index.