一条SQL查询出MySQL数据库中所有表的数据量大小
·
最近在工作中需要进行大表治理,那么首先第一步就是先统计一下MySQL中各个表的数据量。肯定不能对每一张表都去做SELECT count(*) FROM table_name吧,那效率也太低了。如何使用一条SQL语句查询出所有表的数据量呢?
-
首先查询数据库信息:
SHOW DATABASES; -
然后可以看到返回结果中包含了所有的库,我们选择
information_schema即可:USE information_schema; -
执行如下语句:
SELECT table_name, table_rows FROM tables ORDER BY table_rows DESC -
即可统计出每张表的数据量。
-
需要
SELECT的列以及WHERE条件可以动态调整哦~
更新
翻车了,如果是InnoDB存储引擎,大家还是不要用这种方法啦,详见MySQL中count(*)和information_schema.tables中的table_rows值不相同
更多推荐
所有评论(0)