急於了解檔案/資料庫的索引原理,本文不具有真正的參考價值,只是從乙個懶人的角度速成原理。但是跳過了對b-和b+樹的嚴格定義。(因短暫記憶,容易失憶,一星期之後再來回顧。)
現講結果: 檔案/資料庫索引用的是b+樹
1.二叉查詢樹:左節點比根節點小,右節點比根節點大,(原理是類似二分法,具體根據樹的子節點),對該二叉樹的結構沒 有限制。 缺點:有特殊情況,和鍊錶一樣時間複雜度為o(n).
2.二叉平衡樹: 規定每個節點的左右,節點的高度差的絕對值不得超過1,避免了上面二叉查詢樹的極端情況,其原理也是二 分查詢,但是限制了該二叉樹為完全二叉樹(只是便於理解,其實不是完全二叉樹,因為完全二叉樹有左右子節點的高度差不超過1這個特點)。對於非平衡二叉樹,可以通過左旋和右旋的方式轉化為平衡二叉樹。具體詳情可檢視這裡有詳細的左旋和右旋解析。
3.b(b-/多路平衡查詢樹)樹:b樹的概念我就不放了,可以去找課本檢視,我需要的是它與二叉平衡樹的對比之後的優點,我只知道其乙個子樹上可以存放多個節點,比較:相同節點數的b樹和二叉平衡樹,b樹的高度更低,相對而言,同一高度下進行比較的次數多於二叉平衡樹。重點:同一高度下子樹的比較的場所是在記憶體,不同高度的尋找就牽涉到了磁碟的定址載入,因磁碟的定址載入所用時間遠遠大於記憶體中比較所用時間。相對而言,樹的高度越低,所耗的時間會越少。本質:減少io次數,樹的高度。
4.b+樹:b+樹相對於b樹而言,b+樹的中間節點不儲存資料;其與b樹本質不同是在於,b+樹上儲存資料的是葉子節點,根節點到葉子節點之間的子樹儲存的全部是索引。而b樹的每個子樹上儲存的是資料。
MySQL 索引演算法B B 樹原理 二
b tree是一種多路搜尋樹 並不是二叉的 1.定義任意非葉子結點最多只有m個兒子 且m 2 2.根結點的兒子數為 2,m 3.除根結點以外的非葉子結點的兒子數為 m 2,m 4.每個結點存放至少m 2 1 取上整 和至多m 1個關鍵字 至少2個關鍵字 5.非葉子結點的關鍵字個數 指向兒子的指標個數...
檔案資料庫試用
檔案資料庫 檔案資料庫又叫嵌入式資料庫,將整個資料庫的內容儲存在單個索引檔案中,以便於資料庫的發布。檔案資料庫的 3 個重要特徵 相對於傳統資料庫 1 資料操作介面 sql92 標準,不管是傳統資料庫,還是檔案資料庫,都必須支援 sql92 標準。2 資料儲存格式 傳統資料庫 db2,oracle,...
bb資料庫測試
話單入庫後 1話單入庫後原表資料與話單資料對比,對比資料 條數 列數 2異常話單能否入庫及入庫後儲存樣式 3涉及到入庫原表的表,是否會定期刪除,刪除前,資料是否會正常轉移 4入庫表的屬性檢視 表結構定義與話單 預統計 預處理 etl等一致 表空間設定 分割槽設定 有無索引等 表結構 表空間 分割槽 ...