SELECT
table_schema AS '数据库',
table_name AS '表名',
table_rows AS '记录数',
TRUNCATE(data_length/1024/1024, 2) AS '数据容量(MB)',
TRUNCATE(index_length/1024/1024, 2) AS '索引容量(MB)'
FROM information_schema.tables
WHERE table_schema = 'xxxs'
ORDER BY table_schema ASC, data_length DESC, index_length DESC;
这个语言返回的记录数和实际该表中的数据量.是不一致的.是什么原因呢?
这个表的里的数据是静态的,不是实时的,需要执行统计信息收集后才会刷新。
统计所有表的行数所消耗的时间太长了,如果不要求精确统计,可以查你发的这个表用来快速获取相关统计信息
建议使用percona-toolkit 系列工具中的pt –table -checksum 进行数据的比对工作,此工具可下载安装,具体可以百度下,并且还拥有pt-table-sync 这样的工具进行差异数据的修复。
希望可以帮助到你。