正向索引 反向索引 B Tree索引

2021-04-27 11:08:52 字數 853 閱讀 7059

索引就是為了更快的找出需要的資訊。 一般都要進行排序。

正向索引----開發出來用來儲存每個文件的單詞的列表。實際上,時間、記憶體、處理器等等資源的限制,技術上正向索引是不能實現的。既:儲存乙個文件中有那些單詞。有多少單詞就有多少列。然後對每一列進行某種排序。

反向索引----其中每條記錄,記錄的是乙個單詞都在那些文件中出現。然後對這些記錄進行排序。http://zh.wikipedia.org/wiki/%e5%80%92%e6%8e%92%e7%b4%a2%e5%bc%95

b*tree索引----就是b*tree排序。

具體:b*tree索引

b*tree索引是最常見的索引結構,預設建立的索引就是這種型別的索引。b*tree索引在檢索高基數資料列(高基數資料列是指該列有很多不 同的值)時提供了最好的效能。當取出的行數佔總行數比例較小時b-tree索引比全表檢索提供了更有效的方法。但當檢查的範圍超過表的10%時就不能提高 取回資料的效能。b-tree索引是基於二叉樹的,由分支塊(branch block)和葉塊(leaf block)組成。在樹結構中,位於最底層底塊被稱為葉塊,包含每個被索引列的值和行所對應的rowid。在葉節點的上面是分支塊,用來導航結構,包含了 索引列(關鍵字)範圍和另一索引塊的位址,如圖26-1所示。

假設我們要找索引中值為80的行,從索引樹的最上層入口開始,定位到大於等於50,然後往左找,找到第2個分支塊,定位為75-100,最後再 定位到葉塊上,找到80所對應的rowid,然後根據rowid去讀取資料塊獲取資料。如果查詢條件是範圍選擇的,比如where column >20 and column <80,那麼會先定位到第乙個包含20的葉塊,然後橫向查詢其他的葉塊,直到找到包含80的塊為止,不用每次都從入口進去再重新定位。

關於正向索引與反向索引

這一節我們來看看搜尋引擎中最重要的幾個資料結構。前面我們說過索引包含正向索引和反向索引兩部分,首先我們看看正向索引的結構。正向索引用來儲存文件的各種屬性,從邏輯上講,正向索引其實就是乙個大陣列,陣列中每個元素就是乙個文件的屬性集合。如果正向索引是有schema的,那麼它其實就類似乙個關係表或者說二維...

關於正向索引與反向索引

這一節我們來看看搜尋引擎中最重要的幾個資料結構。前面我們說過索引包含正向索引和反向索引兩部分,首先我們看看正向索引的結構。正向索引用來儲存文件的各種屬性,從邏輯上講,正向索引其實就是乙個大陣列,陣列中每個元素就是乙個文件的屬性集合。如果正向索引是有schema的,那麼它其實就類似乙個關係表或者說二維...

正向索引與反向索引(solr)

正向索引 正排索引 正排表是以文件的id為關鍵字,表中記錄文件中每個字的位置資訊,查詢時掃瞄表中每個文件中字的資訊直到找出所有包含查詢關鍵字的文件。正排表結構如圖1所示,這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護 因為索引是基於文件建立的,若是有新的文件加入,直接為該文件建立乙...