2012-03-16 170 views

回答

5

根據MySQL的有關MySQL 5.6信息:

的DATA_FREE列顯示字節InnoDB表

對於早期版本一樣5.5的自由空間:

的DATA_FREE列顯示InnoDB表的可用空間(以字節爲單位)。

對於MySQL羣集,DATA_FREE顯示磁盤上分配的空間空間, 但磁盤數據表或磁盤片段未使用的空間。 (在存儲器數據 資源使用由DATA_LENGTH列中報告。)

+0

明白了。謝謝。 – bananaaus 2012-03-18 22:15:15

0

隨着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表中的表空間可用空間進行報告,並且由於所有表共享 相同的表空間,結果相同。

+0

啊......謝謝納文。 – bananaaus 2012-03-18 22:14:34

8

DATA_FREE-已分配但未使用的字節數。 與數據庫文件中存儲的數據相比,它是數據庫文件的大小。 PHPMyAdmin將此信息顯示爲「表格中的開銷」。

但是對InnoDB來說這很重要 - 「InnoDB表報告表所屬表空間的可用空間,對於位於共享表空間中的表,這是共享表空間的可用空間。」因此,對於典型的InnoDB設置('innondb_file_per_table'未設置),您將獲得所有表的可用空間,而不是單個表。

參見:http://dev.mysql.com/doc/refman/5.5/en/tables-table.htmlhttp://dev.mysql.com/doc/refman/5.5/en/show-table-status.html

+0

明白了。謝謝。 – bananaaus 2012-03-18 22:15:08