如何查看 MySQL 数据库中每张表的大小及总和

在MySQL中,查看单个数据库或所有数据库中每张表的大小以及总和是一个常见的需求,尤其是在数据库维护和优化时。以下是一些有效的方法来实现这一目标:

1. 查看单个数据库中每张表的大小及总和

要查看单个数据库中每张表的大小,可以使用以下SQL查询语句:

SELECT 
    TABLE_NAME AS `Table`, 
    ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS `Size (MB)`
FROM 
    information_schema.TABLES
WHERE 
    TABLE_SCHEMA = 'your_database_name'
ORDER BY 
    (DATA_LENGTH + INDEX_LENGTH) DESC;

这个查询会列出指定数据库中所有表的名称和大小(以MB为单位),并按大小降序排列。这里your_database_name应替换为你的数据库名。

2. 查看所有数据库中每张表的大小及总和

如果你需要查看服务器上所有数据库的表大小,可以使用以下查询:

SELECT 
    TABLE_SCHEMA AS `Database`, 
    TABLE_NAME AS `Table`, 
    ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS `Size (MB)`
FROM 
    information_schema.TABLES
ORDER BY 
    (DATA_LENGTH + INDEX_LENGTH) DESC;

这个查询将返回所有数据库中每张表的名称、数据库名和大小,同样按大小降序排列。

3. 统计所有数据库的总大小

要获取整个MySQL实例的总大小,可以使用:

SELECT SUM(data_length + index_length) / 1024 / 1024 AS total_size_MB
FROM information_schema.TABLES;

这条SQL语句会返回MySQL实例中所有表的数据长度和索引长度之和,并将结果转换为MB单位。

注意事项

  • 这些查询依赖于information_schema.TABLES,这是一个系统表,包含了MySQL实例中所有表的相关信息。
  • 查询结果可能会因为数据库的动态性质而变化,因此定期检查是必要的。
  • 执行这些查询可能会对数据库性能产生一定影响,尤其是在高峰时段,因此建议在数据库负载较低的时候进行。

通过上述方法,你可以有效地监控和规划你的MySQL数据库的存储需求,确保数据库的稳定运行。

本作品采用《CC 协议》,转载必须注明作者和本文链接
MissYou-Coding
讨论数量: 1

容量与数量同时查出来, 更有意义.

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
Coding Peasant @ 互联网
文章
193
粉丝
10
喜欢
60
收藏
63
排名:602
访问:1.3 万
私信
所有博文
博客标签
社区赞助商