Checking MySQL Database Sizes

October 09, 2008

Quick tip: want to know how large each of your MySQL 5 databases is? This query pulls the row counts, data size, index size, and total size from `information_schema`: ```sql mysql> SELECT table_schema, concat(round(sum(table_rows)/1000000,2),'M') as rows, concat(round(sum(data_length)/(1024*1024*1024),2),'G') as data, concat(round(sum(index_length)/(1024*1024*1024),2),'G') as idx, concat(round(sum((data_length+index_length))/(1024*1024*1024),2),'G') as total_size FROM information_schema.TABLES GROUP BY table_schema; +-----------------------------+-------+-------+-------+------------+ | table_schema | rows | data | idx | total_size | +-----------------------------+-------+-------+-------+------------+ | information_schema | NULL | 0.00G | 0.00G | 0.00G | | xxxxxxxxx_xxxx_xxxx_staging | 0.93M | 0.08G | 0.01G | 0.09G | +-----------------------------+-------+-------+-------+------------+ 2 rows in set (0.03 sec) ``` It's one of those queries worth keeping in your back pocket. Handy for capacity planning, spotting unexpectedly large databases, or just satisfying your curiosity about where all that disk space went.
Questions or thoughts? Get in touch.