如何检查MySQL数据库和表的大小

如何检查MySQL数据库和表的大小,本文将帮助你在MySQL或MariaDB的服务器通过SQL查询计算表的和数据库大小。 在INFORMATION_SCHEMA数据库存储所有MySQL相关表数据库中的信息。我们将使用INFORMATION_SCHEMA表查找表和数据库的大小。

MySQL是一个关系数据库管理系统,广泛被用在Linux系统上的数据库系统。本文将帮助你在MySQL或MariaDB的服务器通过SQL查询计算表的和数据库大小。 在INFORMATION_SCHEMA数据库存储所有MySQL相关表数据库中的信息。我们将使用INFORMATION_SCHEMA表查找表和数据库的大小。

在MySQL中检查单个数据库大小:

这个查询将在MySQL服务器计算单个数据库的大小。请更改'MYDB'与实际的数据库名称一样。
SELECT table_schema "Database Name", SUM( data_length + index_length)/1024/1024
"Database Size (MB)" FROM information_schema.TABLES where table_schema = 'mydb';
+---------------+--------------------+
| Database Name | Database Size (MB) |
+---------------+--------------------+
| mydb          |         0.15625000 |
+---------------+--------------------+
1 row in set (0.04 sec)

检查MySQL所有数据库的大小:

这个查询将在MySQL服务器计算所有数据库的大小。
SELECT table_schema "Database Name", SUM(data_length+index_length)/1024/1024
"Database Size (MB)"  FROM information_schema.TABLES GROUP BY table_schema;
+--------------------+--------------------+
| Database Name      | Database Size (MB) |
+--------------------+--------------------+
| demodb             |         0.15625000 |
| information_schema |         0.00976563 |
| mydb               |         0.15625000 |
| mysql              |         0.81098557 |
| performance_schema |         0.00000000 |
+--------------------+--------------------+
5 rows in set (0.01 sec)

检查MySQL数据库单表大小:

该查询将在MySQL服务器数据库中计算出单个表的大小。请更改'MYDB'与实际的数据库名称和“table_one”与您的实际表名相同。
SELECT table_name "Table Name", table_rows "Rows Count", round(((data_length + index_length)/1024/1024),2)
"Table Size (MB)" FROM information_schema.TABLES WHERE table_schema = "mydb" AND table_name ="table_one";
+---------------------+------------+-----------------+
| Table Name          | Rows Count | Table Size (MB) |
+---------------------+------------+-----------------+
| archive_one         |          8 |            0.09 |
+---------------------+------------+-----------------+
1 row in set (0.00 sec)

检查MySQL数据库的所有表的大小:

该查询将在MySQL服务器数据库中计算所有表的大小。请更改'MYDB'与实际的数据库名称相同。它还将列出每个表中的行数。
SELECT table_name "Table Name", table_rows "Rows Count", round(((data_length + index_length)/1024/1024),2)
"Table Size (MB)" FROM information_schema.TABLES WHERE table_schema = "mydb";
+----------------------+------------+-----------------+
| Table Name           | Rows Count | Table Size (MB) |
+----------------------+------------+-----------------+
| table_one  	       |          8 |            0.09 |
| table_two 	       |          0 |            0.02 |
| table_three          |          0 |            0.02 |
| table_four           |        174 |            0.03 |
+----------------------+------------+-----------------+
4 rows in set (0.00 sec)