在mysql中查看剩余的表空间非常简单,只需要输入一条简单的命令即可。
USE information_schema;
SELECT table_schema "Database",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "Size (MB)",
ROUND(SUM(data_free) / 1024 / 1024, 1) "Free Space (MB)"
FROM information_schema.tables
GROUP BY table_schema;
解释一下上述的命令:
USE information_schema;
:首先进入information_schema数据库,这个数据库是mysql自己创建的,里面存储了系统关于数据库、表的元信息。SELECT table_schema "Database",
:查询所有的数据库名,并将这个列命名为"Database"。ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "Size (MB)",
:计算每个数据库中所有数据和索引的大小,并将它们的总和将它们转化为MB后输出,在结果集中将这个列命名为"Size (MB)"。ROUND(SUM(data_free) / 1024 / 1024, 1) "Free Space (MB)"
:计算每个数据库中的所有未使用空间并将它们的总和将它们转化为MB后输出,在结果集中将这个列命名为"Free Space (MB)"。FROM information_schema.tables
:查询information_schema.tables表,这个表存储了所有的数据库和表的元信息。GROUP BY table_schema;
:按照数据库名将结果集分组。
最后我们将输出以下信息:
+--------------------+------------+----------------+
| Database | Size (MB) | Free Space (MB) |
+--------------------+------------+----------------+
| information_schema | 0.1 | 0.0 |
| mysql | 5.5 | 0.0 |
| performance_schema | 0.0 | 0.0 |
| sys | 0.0 | 0.0 |
| test | 45648156.6 | 1297278208.0 |
+--------------------+------------+----------------+
以上就是查询mysql剩余的表空间的方法。