SET @SecondsAgo = 60;
SELECT
table_schema,table_name,
data_length MYDSize,index_length MYISize,
table_rows,update_time
FROM information_schema.tables
WHERE engine='MyISAM'
AND table_schema NOT IN ('information_schema','performance_schema','mysql')
AND update_time > (NOW() - INTERVAL @SecondsAgo SECOND)
ORDER BY update_time DESC;
由于您要检查的表是 MyISAM,因此您可以只使用一个查询。对于任何给定的表或使用 MyISAM 的表,这里是该查询:
对于每个 MyISAM 表,您将获得以下信息:
.MYD
尺寸.MYI
尺寸您可以设置
@SecondsAgo
以选择扫描更改的粒度。如果此查询中出现许多表或同一组表,您将看到哪些表正在经历最频繁的写入和最大的增长。
我将留给您来确定结果的怪异程度。