2013-02-26 131 views
0

任何人都知道爲什麼InnoDB中的information_schema.tables.data_free始終爲8388608,無論表中有多少行;爲什麼information_schema.tables.data_free總是8388608?

table_schema table_name table_rows data_free engine 

g33v1  appraise 0  8388608  InnoDB 

g33v1  areatype 12403  8388608  InnoDB 

g33v1  atype  581982  8388608  InnoDB 

g33v1  atype2  579700  8388608  InnoDB 

謝謝。

回答

0

我認爲這是臨時表的最大尺寸分配用於排序和其他需要硬盤空間的東西。因爲同樣的東西出現在其他情況下也

mysql> show global variables like '%tmp%'; 
+----------------+-----------------------+ 
| Variable_name | Value     | 
+----------------+-----------------------+ 
| bdb_tmpdir  | /usr/local/mysql/tmp/ | 
| max_tmp_tables | 32     | 
| tmp_table_size | 8388608    | 
| tmpdir   | /usr/local/mysql/tmp | 
+----------------+-----------------------+ 

mysql> show global variables like '%myisam%'; 
+---------------------------------+---------------+ 
| Variable_name     | Value   | 
+---------------------------------+---------------+ 
| myisam_data_pointer_size  | 4    | 
| myisam_max_extra_sort_file_size | 2147483648 | 
| myisam_max_sort_file_size  | 2147483647 | 
| myisam_recover_options   | OFF   | 
| myisam_repair_threads   | 1    | 
| myisam_sort_buffer_size   | 4194304  | 
| myisam_stats_method    | nulls_unequal | 
+---------------------------------+--------------- 
+0

嗨,維尼特。感謝您的回答。我再次檢查了這個問題,並發現data_free與所有表相同的原因是因爲我沒有設置innodb_file_per_table。所以data_free意味着idbdata的data_free。也就是說,這個值應該等於所有的表格。是對的嗎? – SarahCla 2013-02-26 07:21:49