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:如何列出每个文件和目录的大小(递归)并按大小排序?