哎呀!這是一個神祕的句子。在http://bugs.mysql.com處提交「文檔」錯誤。 「內存量」是一個糟糕的選擇。
這是一些更多的信息;希望我能更好地解釋它。
InnoDB表主要由「數據」和「索引」(以及一些元信息和可用空間)組成。數據信息和的PRIMARY KEY
都在B樹,並給予,確切地說,在Data_length
該樹的電流的大小。它是塊大小的確切倍數,默認爲16KB。所以,你可以做的最小的InnoDB表格仍然會說Data_length=16384
。
PRIMARY KEY
(總是在InnoDB中)與數據「聚集」。數據由PK訂購。
其他索引被稱爲「輔助索引;他們居住在單獨的B樹(一個或多個),其總長度是Index_length
的‘緩衝池’,大小innodb_buffer_pool_size
的,是RAM,其中數據的部分和索引塊被緩存用於通過InnoDB引擎有效地使用,直到該表被打開時,其任何塊是在RAM中。該發動機從不刻意加載整個表(或整個二級索引等)到RAM中。
一個相關的混亂...... Rows
和Avg_row_length
是近似的,一個估計,那麼另一個從Data_length
除以它來計算。
當查詢正在處理時,索引被複制到內存中,所以磁盤空間和內存使用是同構的。 – Barmar
@Barmar - 將_Blocks_複製到內存中,並將_cached_複製到那裏。你可以有一個大於內存容量的索引。 –
應該可能是「存儲量」。 – tadman