Live Blog

Get the size of a Single MySQL Database or All MySQL Database Sizes on a Server

Content Error or Suggest an Edit

Notice a grammatical error or technical inaccuracy? Let us know; we will give you credit!

Getting Single MySQL Database Size

This is the command I use to get a single database size in MySQL: replace <DATABASE_NAME> with the database you wish to check.

mysql -e "SELECT table_schema AS \"Database\", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS \"Size (MB)\" FROM information_schema.TABLES WHERE table_schema = \"<DATABASE_NAME>\" GROUP BY table_schema;"

Getting Entire Server MySQL Database Size

The following command will provide you with a list of databases and their sizes as well as a total.

    mysql -e "
    SELECT * FROM (
        SELECT 
            table_schema AS 'Database', 
            ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' 
        FROM 
            information_schema.TABLES 
        GROUP BY 
            table_schema
    ) AS original_query
    UNION ALL
    SELECT 
        'Total' AS 'Database', 
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' 
    FROM 
        information_schema.TABLES
    ORDER BY 
        CASE 
            WHEN 'Database' = 'Total' THEN 1 
            ELSE 0 
        END, 
        'Size (MB)' DESC;
    "
0 Shares: