mysql 索引頁物理結構--physical structer of an innodb index

mysql 索引頁物理結構-physical structer of an innodb index
https://dev.mysql.com/doc/refman/5.7/en/innodb-physical-structure.html

除了空間索引,innodb索引是B數數據結構。空間索引使用R數,其是用於索引多維數據的專用數據結構。索引記錄存儲在其B-tree或R-tree的葉子節點上。索引頁默認大小是16K

 當新的記錄插入到聚簇索引中時,innodb會嘗試將頁面的1/16留空以供將來的插入和更新索引記錄。如果以順序(升序或降序)來插入索引記錄,則生成的索引頁大約爲15/16滿。如果索引記錄是隨機插入,頁面從1/2到15/16滿。

 innodb在創建或重建B樹索引時執行批量加載。這種索引構建方法稱之爲排序索引構建。innodb_fill_factor定義在排序索引構建期間填充的每個B樹頁面上的空間百分比,剩餘空間爲未來索引增長保留。空間索引不支持索引構建。詳細信息參見15.8.12節(https://dev.mysql.com/doc/refman/5.7/en/sorted-index-builds.html)。設置爲100的innodb_fill_factor將留下聚集索引頁中1/16的空間,以供將來索引增長。
  如果innodb索引頁的填充因子低於MERGE_THRESHOLD,默認情況下爲50%(如果未指定),innodb將嘗試收縮索引樹以釋放頁面。MERGE_THRESHOLD的設置適用於B樹和R樹索引。有關選項參看(https://dev.mysql.com/doc/refman/5.7/en/index-page-merge-threshold.html)

  在創建實例之前你可以通過設置innodb_page_size配置選項來配置mysql實例中所有innodb表空間的頁大小。一旦設置了實例的頁面大小,你就無法更改它。支持的大小對應選項值爲64k,32k,16k,8k,4k,16K是默認設置大小。

  在mysql 5.7中增加了對32KB和64KB頁大小的支持。可參閱innodb_page_size文檔(https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_page_size)
 
  使用特定innodb頁大小的mysql實例無法使用來自於使用不同頁大小的實例的數據文件或日誌文件。
發佈了193 篇原創文章 · 獲贊 30 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章