在DBMS中索引 -
索引結構
可以使用某些資料庫列建立索引。
索引方法
通常對索引進行排序以使搜尋更快,排序索引稱為有序索引。
範例: 假設有一個包含幾千條記錄的employee
表,每條記錄的長度為10
個位元組。 如果它們的ID是以1
,2
,3 ......
等開頭,那麼如果要使用ID為543
來搜尋學生的資訊。
543
。 DBMS將在讀取543 * 10 = 5430
位元組後讀取記錄。542 * 2 = 1084
位元組後讀取記錄,這與前一種情況相比非常少。1:1
的關係。在資料檔案中,索引記錄僅針對少數專案出現。 每個專案都指向一個區塊。
在此,索引不是指向主表中的每個記錄,而是指向間隙中主表中的記錄。
範例: 假設公司在每個部門中包含多個員工。假設使用聚簇索引,其中屬於同一Dept_ID
的所有員工都被視為在單個叢集中,並且索引指標指向整個叢集。 這裡Dept_ID
是一個非唯一鍵。
之前的架構很容易混淆,因為一個磁碟塊由屬於不同叢集的記錄共用。如果為單獨的叢集使用單獨的磁碟塊,那麼它是一種更好的技術。
在稀疏索引中,隨著表的大小增加,對映的大小也會增加。 這些對映通常儲存在主記憶體儲器中,因此地址獲取應該更快。 然後,輔助儲存器根據從對映獲得的地址搜尋實際資料。 如果對映大小增加,那麼獲取地址本身會變慢。 在這種情況下,稀疏索引效率不高。 為了克服這個問題,引入了二級索引。
在二級索引中,為了減小對映的大小,引入了另一級索引。 在該方法中,最初選擇列的巨大範圍,使得第一級對映變小。 然後將每個範圍進一步劃分為更小的範圍。 第一級的對映儲存在主記憶體儲器中,因此地址獲取更快。 第二級和實際資料的對映儲存在輔助儲存器(硬碟)中。
範例:
111
的記錄,則它將搜尋第一級索引中小於或等於111
的最高條目。 這個級別將達到100
。max(111)<= 111
並獲得110
。現在使用地址是:110
,它進入資料塊並開始搜尋每個記錄,直到它達到111
。