我不完全确定information_schema.TABLES.DATA_FREE在MySQL中是什么意思。
有人能帮我理解一下吗?
谢谢。
发布于 2012-03-16 14:57:48
DATA_FREE-已分配但未使用的字节数。它是数据库文件相对于存储在数据库文件中的数据的大小。PHPMyAdmin将此信息显示为“表中的开销”。
但是,对于InnoDB来说,这一点很重要-- "InnoDB表报告表所属表空间的空闲空间。对于位于共享表空间中的表,这是共享表空间的空闲空间。“因此,使用典型的InnoDB设置(未设置‘innondb_file_per_table’),您将获得所有表的可用空间,而不是单个表的空闲空间。
参考:http://dev.mysql.com/doc/refman/5.5/en/tables-table.html和http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html
发布于 2012-03-16 13:39:09
使用innodb_file_per_table=OFF,所有InnoDB表都存储在相同的表空间中。为该单个表空间报告DATA_FREE (已分配但未使用的字节数)。
阅读http://dev.mysql.com/doc/refman/5.0/en/innodb-file-space.html
通过发出SHOW TABLE STATUS语句请求表空间中的可用空间时,InnoDB将报告表空间中绝对可用的扩展区。InnoDB始终保留一些扩展区用于清理和其他内部用途;这些保留的扩展区不包括在可用空间中。
因此,对于InnoDB表,报告表空间中的空闲空间,并且由于所有表共享相同的表空间,因此结果是相同的值。
https://stackoverflow.com/questions/9731853
复制相似问题