Displaying database size in MySQL
To find out the size of your databases, use this query:
SELECT table_schema "Data Base Name",
sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB",
sum( data_free )/ 1024 / 1024 "Free Space in MB"
FROM information_schema.TABLES GROUP BY table_schema ;
Displaying table sizes within a database:
SELECT table_name AS `Table`,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
where table_schema = 'db_name' ORDER BY (data_length + index_length) DESC;
Info about the disk space used by mysql databases (run in bash):
mysql -e 'SELECT table_schema `Data Base Name`, sum( data_length + index_length ) `Data Base Size in B` FROM information_schema.TABLES GROUP BY table_schema' |grep -v `^Data` |awk '{print $2}' |paste -sd+ |bc