天天看點

資料庫必知詞彙:索引

索引是為了加速對表中資料行的檢索而建立的一種分散的存儲結構。索引是針對表而建立的,它是由資料頁面以外的索引頁面組成的,每個索引頁面中的行都會含有邏輯指針,以便加速檢索實體資料。

索引提供指向存儲在表的指定列中的資料值的指針,然後根據您指定的排序順序對這些指針排序。資料庫使用索引以找到特定值,然後順指針找到包含該值的行。這樣可以使對應于表的SQL語句執行得更快,可快速通路資料庫表中的特定資訊。

當表中有大量記錄時,若要對表進行查詢,第一種搜尋資訊方式是全表搜尋,是将所有記錄一一取出,和查詢條件進行一一對比,然後傳回滿足條件的記錄,這樣做會消耗大量資料庫系統時間,并造成大量磁盤I/O操作;第二種就是在表中建立索引,然後在索引中找到符合查詢條件的索引值,最後通過儲存在索引中的ROWID快速找到表中對應的記錄。

索引的主要作用是快速取資料、保證資料記錄的唯一性、實作表與表之間的參照完整性,以及在使用ORDER by、group by子句進行資料檢索時,利用索引可以減少排序和分組的時間。索引的缺點在于需要占實體空間,以及當對表中的資料進行增加、删除和修改的時候,索引也要動态的維護,降低了資料的維護速度。

根據資料庫的功能,可以在資料庫設計器中建立四種索引,即單列索引、唯一索引、主鍵索引和聚集索引,具體解釋如下:

  • 單列索引:最基本的索引類型,沒有唯一性之類的限制。
  • 唯一索引:不允許其中任何兩行具有相同索引值的索引。
  • 主鍵索引:資料庫表中一列或列組合(字段)的值唯一辨別表中的每一行,該列稱為表的主鍵。
  • 聚集索引:也稱為聚簇索引,在聚集索引中,表中行的實體順序與鍵值的邏輯(索引)順序相同。一個表隻能包含一個聚集索引,即如果存在聚集索引,就不能再指定CLUSTERED 關鍵字。

資料來源:

陸慧娟.資料庫原理與應用:科學出版社,2006

陶程仁.資料庫原理及應用:西南交通大學出版社,2011

佟勇臣.資料庫原理與應用:中國水利水電出版社,2012

周屹 李豔娟.資料庫原理及開發應用(第二版):清華大學出版社,2013

王珊 薩師煊.資料庫系統機率(第5版):高等教育出版社,2014