索引是對資料庫表中乙個或多個列(例如,employee 表的姓名 (name) 列)的值進行排序的結構。如果想按特定職員的姓來查詢他或她,則與在表中搜尋所有的行相比,索引有助於更快地獲取資訊。
例如這樣乙個查詢:select * from table where id=10000。如果沒有索引,必須遍歷整個表,直到id等於10000的這一行被找到為止;有了索引之後(必須是在id這一列上建立的索引),即可在索引中查詢。由於索引是經過某種演算法優化過的,因而查詢次數要少的多。可見,索引是用來定位的。
在經常需要搜尋的列上,可以加快搜尋的速度;
在經常用在連線的列上,這些列主要是一些外來鍵,可以加快連線的速度;
在經常需要排序的列上建立索引,因為索引已經排序,這樣查詢可以利用索引的排序,加快排序查詢時間.
同樣,對於有些列不應該建立索引。一般來說,不應該建立索引的這些列具有下列特點:
第一,對於那些在查詢中很少使用或者參考的列不應該建立索引。這是因為,既然這些列很少使用到,因此有索引或者無索引,並不能提高查詢速度。相反,由於增加了索引,反而降低了系統的維護速度和增大了空間需求。
第二,對於那些只有很少資料值的列也不應該增加索引。這是因為,由於這些列的取值很少,例如人事表的性別列,在查詢的結果中,結果集的資料行佔了表中資料行的很大比例,即需要在表中搜尋的資料行的比例很大。增加索引,並不能明顯加快檢索速度。
第三,對於那些定義為text, image和bit資料型別的列不應該增加索引。這是因為,這些列的資料量要麼相當大,要麼取值很少,不利於使用索引。
資料庫索引簡介
索引是一種特殊的資料庫結構,可以用來快速查詢資料庫表中的特定記錄,索引是提高資料庫查詢效能的重要方式。在mariadb中,所有的資料型別都可以被索引。mariadb的索引包括普通索引 唯一性索引 全文索引 單列索引 多列索引和空間索引等。索引由資料庫表中一列或多列組合而成,其作用是提高對錶中資料的查...
資料庫 索引優化分析 索引簡介
mysql官方對索引的定義為 索引 index 是幫助mysql高效獲取資料的資料結構。可以得到索引的本質 索引是資料結構。索引的目的在於提高查詢效率,可以模擬字典。可以將索引理解為 排好序的快速查詢資料結構 在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指...
資料庫中 「主鍵」和「索引」 簡介
主鍵是錶行資料的唯一標識,具有唯一性和非空屬性,索引主要作用是用於查詢,提供查詢速度的。主鍵是表中的乙個或多個字段,它的值用於惟一地標識表中的某一條記錄。索引是對資料庫表中一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的資料時,才需要在表上建立索引。索引占用磁碟空間,並且降低新增 刪除和更...