MySQL 表数据目录大于从 information_schema.tables 计算的大小

标签 mysql linux

我在 Linux 机器上的 MySQL 5.6 中表的数据目录的大小比我从 information_schema.tables 查询中获得的大小大得多是否有效?

文件系统(/data/)中的大小为11G,

虽然以下查询返回 5G

SELECT sum(ROUND(((DATA_LENGTH + INDEX_LENGTH ) / 1024 / 1024),2)) AS size FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='my-table-name

我错过了什么吗?


total          | free         | data          | index_data   |
 4597.85937500 | 613.00000000 | 4089.40625000 | 508.45312500 | 

最佳答案

这是我用来查找数据库大小的脚本:

SELECT 
table_schema "DB Name",  
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"  FROM 
information_schema.tables  where table_schema ='schema name' ;

运行此查询并向我们展示输出:

select (sum(data_length) + sum(INDEX_LENGTH))/ 1024 / 1024 as total, 
    sum(data_free)/ 1024 / 1024  as free ,
    sum(data_length)/ 1024 / 1024 as data, 
    sum(INDEX_LENGTH/ 1024 / 1024) as index_data 
    from information_schema.tables t
    where t.TABLE_SCHEMA = 'schema name';

关于MySQL 表数据目录大于从 information_schema.tables 计算的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672200/

相关文章:

php - 确定MySQL中NOW()的时区

mysql - MySql 中的索引类型?

c++ - 在 linux 的另一个线程中检测程序启动

linux - 创建 Cron 作业以在 QNAP NAS 上应用权限

c - 尝试在终端中运行 C 程序时出现问题

c - 使用 libinput 获取原始多点触控数据

linux - linux和AUTOSAR的多核使用

php - 清理/转义用户输入和输出

php - 来自 mysql 的错误日期按顺序排列

mysql - 如何创建游标循环,使其循环 X 次,并与列中的数据连接