Ieri stavo perdendo un pò di tempo ad analizzare una singolare situazione che si era verificata in uno dei tanti MySQL database da me amministrati: un incremento improvviso (e almeno apparentemente anomalo) delle dimensioni, ovvero dello spazio occupato su disco. Poiché non avevo idea di quante e quali tabelle fossero affette da tale problema, la prima cosa che ho fatto è stata dotarmi di uno strumento in grado di poter mostrare un elenco di tutte le tabelle presenti nei vari DB, ordinate per dimensione.
Sono riuscito ad effettuare questa analisi in poco tempo grazie all'aiuto di queste query, realizzate sulla base di questa risposta sul sito StackOverflow.
Dimensioni di una singola tabella in un Database
1 2 3 4 5 6 7 |
SELECT table_name AS `Table`, data_length + index_length `Size (Bytes)`, ROUND(((data_length + index_length) / 1024 / 1024), 2) `Size (MB)` FROM information_schema.TABLES WHERE table_schema = "[yourDB]" AND table_name = "[yourTABLE]"; |
Dimensioni di tutte le tabelle in un Database
1 2 3 4 5 6 7 8 |
SELECT table_name AS `Table`, data_length + index_length `Size (Bytes)`, ROUND(((data_length + index_length) / 1024 / 1024), 2) `Size (MB)` FROM information_schema.TABLES WHERE table_schema = "[yourDB]" AND table_name = "$TABLE_NAME" ORDER BY (data_length + index_length) DESC; |
Dimensioni di tutte le tabelle in tutti i Database
1 2 3 4 5 6 7 |
SELECT table_schema AS `Database`, table_name AS `Table`, data_length + index_length `Size (Bytes)`, ROUND(((data_length + index_length) / 1024 / 1024), 2) `Size (MB)` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC; |
Dimensioni di tutti i Database
1 2 3 4 5 6 |
SELECT table_schema "DB Name", SUM(data_length + index_length) `Size (Bytes)`, ROUND(SUM((data_length + index_length) / 1024 / 1024), 2) `Size (MB)` FROM information_schema.tables GROUP BY table_schema ORDER BY SUM(data_length + index_length) DESC; |
- Fate click con il tasto destro del mouse sul nome dello schema, quindi selezionate Schema inspector dal menu contestuale.
- Si aprirà una finestra contenente alcune tab, tra cui:
- Info, che contiene una stima approssimativa delle dimensioni del Database (in MB).
- Tables, che contiene una stima approssimativa delle dimensioni delle varie tabelle (in MB).
Per il momento è tutto: felice query!