mysql - 如何找出数据库中占用内存最大的表?

标签 mysql database database-design mysqldump

大家好,我是数据库新手。我正在处理庞大的数据库并试图清理困惑。我想首先找到在整个数据库中占用内存最高的前十个表。由于表太多,我无法找到每个表的内存。我需要占用最大空间的前 10 或 20 个表。任何帮助将非常感激。谢谢你。

最佳答案

也许是这样的:

SELECT CONCAT(table_schema, '.', table_name),
       CONCAT(ROUND(table_rows / 1000000, 2), 'M')                                    rows,
       CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G')                    DATA,
       CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G')                   idx,
       CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
       ROUND(index_length / data_length, 2)                                           idxfrac
FROM   information_schema.TABLES
ORDER  BY data_length + index_length DESC
LIMIT  10;

引用 here

关于mysql - 如何找出数据库中占用内存最大的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9932663/

相关文章:

postgresql - 具有有限域的文本字段 : to factor into sub-tables or not?

mysql - 点餐系统——数据库设计

sql - 使用 JOIN 而不是 INTERSECT 查询

MySQL : Multiple row as comma separated single row

python - 在 Python 中动态生成导入,专门针对 Django 模型

database-design - 关系数据库与维度数据库,有什么区别?

php - 传递参数给php获取具体信息

MYSQL GROUP BY 子句添加非 GROUP BY 列

PHP倒计时从一天开始

php - MySQL + PHP : select count group by day and user