Skip to content

MySQL is a widely used relational database management system that plays a crucial role in data storage and management. Knowing the size of your tables within a MySQL database is essential not only for performance tuning and capacity planning but also for maintaining an efficient and streamlined data management process.

How to check the size of MySQL tables?

You can retrieve the size of your MySQL tables by querying the information_schema database, a built-in feature that holds metadata about your database structures. Execute the following SQL query to list all tables in your specified database along with their sizes in megabytes:

SELECT
    table_name AS `Table`,
    round(((data_length + index_length) / 1024 / 1024), 2) AS `Size in MB`
FROM information_schema.TABLES
WHERE table_schema = "<your_database_name>"
ORDER BY (data_length + index_length) DESC;

Replace <your_database_name> with the name of your database to get a clear overview of your table sizes, organized from the largest to the smallest.

How to analyze individual table size in MySQL?

For a more detailed analysis of a specific table’s size, modify the query below to include the data length, index length, and available free space:

SELECT
    table_name AS `Table`,
    round((data_length / 1024 / 1024), 2) AS `Data MB`,
    round((index_length / 1024 / 1024), 2) AS `Index MB`,
    round((data_free / 1024 / 1024), 2) AS `Free MB`
FROM information_schema.TABLES
WHERE table_schema = "<your_database_name>"
AND table_name = "<your_table_name>";

Substitute <your_database_name> and <your_table_name> to focus on your table of interest. This targeted approach allows you to break down and understand how space is utilized within your table.

How optimize table storage in MySQL?

If you discover tables larger than necessary, consider taking action to optimize them. The OPTIMIZE TABLE command helps you reclaim unused space and reduce data fragmentation:

OPTIMIZE TABLE <your_table_name>;

Simply replace <your_table_name> with the name of the table you need to optimize. This proactive step can lead to improved performance and more efficient space utilization.

Written by

Robert Cooper avatar

Robert Cooper

Senior Engineer at Basedash

Robert Cooper is a senior engineer at Basedash who builds full-stack product systems across SQL data infrastructure, APIs, and frontend architecture. His work focuses on application performance, developer velocity, and reliable self-hosted workflows that make data operations easier for teams at scale.

View full author profile →

Looking for an AI-native BI tool?

Basedash lets you build charts, dashboards, and reports in seconds using all your data.