Find Database Sizes in MySQL/MariaDB Database Server

ComputingPost
2 min readSep 17, 2022

--

Are you trying to find which databases in your MySQL/MariaDB database server has large tablespace?. People have varying reasons for finding database sizes in MySQL/MariaDB. It could be for data truncation, data archiving, table optimizations among many other applications.

In this how-to guide, I’ll share with you a query you can use in your MySQL/MariaDB database server to find the size of each Database.

Launch MySQL / MariaDB shell console:

$ mysql -u root -p

Run the query below:

SELECT

COUNT(*) AS Total_Table_Count

,table_schema

,CONCAT(ROUND(SUM(table_rows)/1000000,2),'M') AS Total_Row_Count

,CONCAT(ROUND(SUM(data_length)/(1024*1024*1024),2),'G') AS Total_Table_Size

,CONCAT(ROUND(SUM(index_length)/(1024*1024*1024),2),'G') AS Total_Table_Index

,CONCAT(ROUND(SUM(data_length+index_length)/(1024*1024*1024),2),'G') Total_Size

FROM information_schema.TABLES

GROUP BY table_schema

ORDER BY SUM(data_length+index_length)

DESC LIMIT 10;

This query will:

  • Find the number of tables in each database
  • Total number of rows in a database
  • Total table size and Index
  • Total table size in GB

Below is a sample output:

+-------------------+--------------------+-----------------+------------------+-------------------+------------+

| Total_Table_Count | table_schema | Total_Row_Count | Total_Table_Size | Total_Table_Index | Total_Size |

+-------------------+--------------------+-----------------+------------------+-------------------+------------+

| 124 | b4gaags_db | 1.72M | 0.10G | 0.06G | 0.16G |

| 33 | mutima | 0.44M | 0.10G | 0.03G | 0.13G |

| 55 | gitea | 0.00M | 0.00G | 0.00G | 0.00G |

| 48 | kanboard | 0.00M | 0.00G | 0.00G | 0.00G |

| 31 | mysql | 0.00M | 0.00G | 0.00G | 0.00G |

| 76 | information_schema | NULL | 0.00G | 0.00G | 0.00G |

| 3 | zourfs | 0.00M | 0.00G | 0.00G | 0.00G |

| 52 | performance_schema | 0.07M | 0.00G | 0.00G | 0.00G |

+-------------------+--------------------+-----------------+------------------+-------------------+------------+

8 rows in set (0.027 sec)

The ORDER BY DESC LIMIT 10 will show the database sizes from the largest to smallest. Adjust the LIMIT 10 to print more records.

https://www.computingpost.com/find-database-sizes-in-mysql-mariadb-database-server/?feed_id=576&_unique_id=6325427da6bab

--

--

ComputingPost
ComputingPost

Written by ComputingPost

ComputingPost — Linux Howtos, Tutorials, Guides, News, Tips and Tricks.

No responses yet