Mysql詳解--知識整理

【持續更新,本身整理用】
B-Tree 與 B+Treehtml

  • B樹索引最通俗易懂的介紹 - xiaohouye - 博客園 (cnblogs.com)
  • B樹非葉子節點由關鍵字+ 數據組成,因此遍歷過程當中就能獲取到數據。而B+樹的節點都會出如今葉子節點,非葉子節點只有關鍵字,數據所有在葉子節點。而且葉子節點間有指針鏈接
  • 計算機中磁盤存儲數據最小單元是扇區一個扇區的大小是 512 字節,而文件系統(例如XFS/EXT4)他的最小單元是,一個塊的大小是 4k,而對於咱們的 InnoDB 存儲引擎也有本身的最小儲存單元——(Page),一個頁的大小是 16K
  • 爲何關係型數據庫B+Tree來存儲數據:【1.B-Tree每一個節點須要存儲(關鍵字+數據),而B+Tree只存儲關鍵字;每一個頁的大小有限,因此同一個頁中,B+Tree能存儲更多的數據。2.B+Tree 能夠經過找到關鍵字數據後,經過遍歷鏈表方便的找到指定範圍內的關鍵字】
  • InnoDB也有頁的概念,默認頁的大小爲16K,即每次讀取數據時是4*4K。。數據庫頁的分裂以下:1-10的數據本來存儲在Page1中,只有一個頁,後來由於添加了11,一個頁裝不下了,須要分裂。分裂是將原來的頁複製到一個新的頁,而後將原來的頁設置爲根節點,成爲了避免存放數據,而是隻存放關鍵字的頁,而後再新建一個頁放多出來的那個11。分裂後有了3個頁。
  • 將原來根節點的數據複製到新的一頁,而不是直接建立一個新的頁做爲根節點,是由於:若是是從新建立根結點,那根結點存儲的物理地址可能常常會變,不利於查找。而且在innodb中根結點是會預讀到內存中的,因此結點的物理地址固定會比較好!
相關文章
相關標籤/搜索