當我們向某個索引對應的B+樹插入記錄,需要先定位到這條記錄應該被插入到哪個葉子節點對應的資料頁中,確定之后有兩種情況:
①該頁恰好空間足夠,能直接插入資料
②該頁空間不足,不能直接插入資料
我們把該頁稱為頁A
對于第一種情況,資料可以直接插入頁A而不會產生其他影響; 對于第二種情況,頁A空間不足,但資料需要插入頁A,那就需要進行頁分裂;
頁分裂程序
創建一個新頁B,將頁A中的部分資料轉移到頁B中,這樣就頁A能空出多余的空間存盤新紀錄,再將頁B添加到葉子節點的鏈表中;
但這還沒完,由于葉子節點鏈表發生了變化,記錄葉子節點情況的上一層,也需要發生一些變化,來記錄這個新插入的頁B,也就是在內節點添加一條目錄項記錄,來指向這個新創建的頁B;
顯而易見,插入資料時發生頁分裂會降低性能;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/541786.html
標籤:其他
