摘要:數據庫索引是用于提高數據檢索速度的關鍵數據結構,該文結合常用的數據庫索引結構B樹,分析索引的原理,并結合外存儲的原理,分析大多數數據庫使用B+樹作為索引結構的原因,并結合MySQL數據庫中InnoDB存儲引擎中的索引實現,分析其優缺點。
關鍵詞:B樹結構;外存儲原理;MySQL索引
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)34-8079-02
本文的內容結構如下所示:
第一部分主要從數據結構及算法理論層面討論B-Tree。
第二部分結合外存儲器的存儲原理,討論使用BTree作為索引的原因。
第三部分討論MySQL數據庫中InnoDB數據存儲引擎中的索引——改進的B+Tree的結構,及其優點。
1 索引的數據結構及算法基礎
數據庫查詢是數據庫的最主要功能之一,提高數據查詢速度是數據庫索引的主要目標,通常,研究者通過優化檢索算法來提高查詢速度。查找算法有幾類,一種是順序查找,算法的復雜度為O(n),另外有二分查找、二叉樹查找等。一般來說,一種查找算法對應一種數據結構,例如順序查找對應連續的數據,二分查找對應排好序的數據,二叉樹搜索對應二叉查找樹。但是,這類數據結構還完全不能滿足各種查找需求。比如,二分查找的條件要求將數據排序,但是數據庫中不可能同時將兩列都按順序存儲。所以,數據庫系統必須維護滿足特定查找算法的數據結構——索引,以實現更高級的查找算法。
當前,大部分數據庫系統都采用BTree作為索引結構,其原因在于BTree的數據結構和主流外存儲器的存儲原理。……