Mysql 列出表和大小 - 按大小排序

Posted

技术标签:

【中文标题】Mysql 列出表和大小 - 按大小排序【英文标题】:Mysql list tables and sizes - order by size 【发布时间】:2013-01-12 06:11:42 【问题描述】:

mysql 中按大小按数据库顺序列出所有表的查询是什么?

【问题讨论】:

What have you tried? 请参阅ask advice。 How to get the sizes of the tables of a mysql database?的可能重复 检查mysqlperformanceblog.com/2008/02/04/… 相关,如果感兴趣的话,我在this Answer写了一个Describe All Tables 【参考方案1】:

试试这个...

SELECT TABLE_NAME, table_rows, data_length, index_length, 
round(((data_length + index_length) / 1024 / 1024),2) "Size in MB"
FROM information_schema.TABLES WHERE table_schema = "schema_name"
ORDER BY (data_length + index_length) DESC;

注意:将上面的 schema_name 替换为您的数据库名称

【讨论】:

【参考方案2】:

在 mysql 客户端中运行以下查询

SELECT table_name AS "Tables", 
round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" 
FROM information_schema.TABLES 
WHERE table_schema = "$DB_NAME"
ORDER BY (data_length + index_length) DESC;

【讨论】:

【参考方案3】:

在 information_schema 数据库中执行以下查询:

SELECT table_schema AS "Database name",
SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" 
FROM information_schema.TABLES 
GROUP BY table_schema 
ORDER BY (SUM(data_length + index_length) / 1024 / 1024) DESC;

【讨论】:

以上是关于Mysql 列出表和大小 - 按大小排序的主要内容,如果未能解决你的问题,请参考以下文章

sh Bash:如何列出每个文件和目录的大小(递归)并按大小排序?

在控制台列出桌面文件及文件大小,按修改时间排序

如何在 Linux 命令行中按大小对文件进行排序

linux 查看命令 ___软连接__大小排序 ___时间排序

Mysql之 order by 排序

HDFS ls查看文件-按照时间排序