談談索引檔案

2021-06-18 01:14:37 字數 708 閱讀 4000

本來是去查b-tree的,翻到了索引檔案,看了兩眼,備忘一下吧。

什麼是索引檔案?

除了檔案本身(即資料區)之外,另建立一張表只是邏輯記錄和物理記錄之間的意義對應關係的表---索引表,這類包括檔案資料區和索引錶兩大部分的檔案叫做索引檔案。

索引表示由系統自動生成的,在記錄輸入建立資料區的同時建立乙個索引表,按輸入次序排列,輸入完畢之後再對索引表進行排序。

索引為什麼快?

首選,索引是有序的,所以就可以按照折半查詢法。

其次,索引項的長度通常遠遠小於記錄的長度,可以直接放進記憶體,讀取速度也快。這樣子就只有讀索引,讀檔案兩次讀取外村,速度快。

當然未必所有的情況都可以全放進記憶體,如果乙個物理塊放不下,可以對索引表再建索引,稱之為查詢表,第二查詢表,第三查詢表。

多級索引又分為靜態索引和動態索引。

靜態索引的各級索引均為順序結構,但是修改時就需要重組索引,所以變動多時不適合用靜態而應該用動態。

如果檔案記錄數不多,索引表也不大,記憶體可一次容納的話,可以選用二叉排序樹或平衡樹做索引;

如果記錄數很多,索引表也在外存,此時需要用b-tree做索引;

還有一種是鍵樹,適合特殊型別的關鍵字的索引表。

總之,對外存中的索引表的查詢速度取決於訪問外存的速度,即索引表的深度。

關於isam,vsam和hash檔案。。。待續。。。原來myisam不是mysql專享的啊,哈哈。。。發現,這部分通篇都是檔案二字。

索引檔案構成

1 索引檔案 索引檔案由主檔案和索引表構成。主檔案 檔案本身。索引表 在檔案本身外建立的一張表,它指明邏輯記錄和物理記錄之間的一一對應關係。2 索引表組成 索引表必須按主關鍵字有序,而主檔案本身則可以按主關鍵字有序或無序。3 索引順序檔案和索引非順序檔案 1 索引順序檔案 indexed seque...

Lucene索引檔案

如何產生乙個segment?當indexwriter執行commit時,會產生乙個segment。下述檔案每個segment乙個 fnm 儲存乙個segment中field個數,field名稱,field的屬性 是否索引 儲存etc fdt 儲存乙個segment中,每個document中所有fie...

Lucene系列 索引檔案

本文介紹下lucene生成的索引有哪些檔案組成,每個檔案包含了什麼資訊。基於lucene 4.10.0。索引 index 包含了儲存的文件 document 正排 倒排資訊,用於文字搜尋。索引又分為多個段 segments 每個新新增的doc都會存到乙個新segment中,不同的segments又會...