How To Get The Size Of A Database In MySQL


Short Answer

1
2
3
4
SELECT table_schema "Database Name",
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) "Database Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema; 

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- create
CREATE TABLE EMPLOYEE (
  empId INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  dept TEXT NOT NULL
);

-- insert
INSERT INTO EMPLOYEE VALUES (0001, 'Clark', 'Sales');
INSERT INTO EMPLOYEE VALUES (0002, 'Dave', 'Accounting');
INSERT INTO EMPLOYEE VALUES (0003, 'Ava', 'Sales');

SELECT table_schema "Database Name",
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) "Database Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema; 

Query output:

1
2
3
4
5
+------------------+---------------------+
| Database Name    | Database Size in MB |
+------------------+---------------------+
| test_db          | 0.02                |
+------------------+---------------------+




Related Posts

How To Specify Unique Constraint For Multiple Columns In MySQL

How to make multiple columns unique (together) in an existing...

How To Select One Row Per ID With Max Value On A Column

Suppose we have the following REIMBURSEMENT table, find the max...

How To Get The Size Of A Table In MySQL

How to get the size of a table in MySQL...

How To Get The Size Of A Database In MySQL

How to get the size of a database in MySQL...

How To Concatenate Multiple Rows Into One Field In MySQL

How to concatenate multiple rows into one field in MySQL...

How To Change The Data Type Of A Column In MySQL

Given a table EMPLOYEE, change the data type of the...