如何解决如果未启用每个文件的innodb,如何在mysql 5.6中查找innodb表的数据长度和索引长度
在MysqL 5.6中,我们禁用了每个文件的innodb。我只想知道表数据和索引的大小。请让我知道如何获取准确的数据。
解决方法
如果启用了innodb_file_per_table,则获取数据长度和索引长度的方法也相同:
SELECT data_length,index_length
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB';
或者如果您想要总数:
SELECT SUM(data_length+index_length) AS total
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB';
如果启用/禁用innodb_file_per_table,则数据长度和索引长度没有不同。
计算不同的是data_free
。如果您禁用了innodb_file_per_table,则将为INFORMATION_SCHEMA.TABLES中的每一行报告整个表空间的data_free。因此,您不应该SUM()
使用data_free,因为那样会给您带来误导的结果。它将多次计数相同的data_free,等于表空间中的InnoDB表的数量。
SHOW TABLE STATUS
提供当前数据库的信息。请注意,Data_free
将引用ibdata1
,而不是表格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。