Mysql學習筆記三 索引

2021-10-23 05:01:58 字數 1184 閱讀 1346

在關聯式資料庫中,如果有上萬甚至上億條記錄,在查詢記錄的時候,想要獲得非常快的速度,就需要使用索引。

索引是關聯式資料庫中對某一列或多個列的值進行預排序的資料結構。通過使用索引,可以讓資料庫系統不必掃瞄整個表,而是直接定位到符合條件的記錄,這樣就大大加快了查詢速度。

例如,對於students表:

idclass_id

name

gender

score11

小明m902

1小紅f95

31小軍m

88如果要經常根據score列進行查詢,就可以對score列建立索引:

alter table students

add index idx_score (score);

索引如果有多列,可以在括號裡依次寫上,例如:

alter table students

add index idx_name_score (name, score);

索引的效率取決於索引列的值是否雜湊,即該列的值如果越互不相同,那麼索引效率越高。

可以對一張表建立多個索引。索引的優點是提高了查詢效率,缺點是在插入、更新和刪除記錄時,需要同時修改索引,因此,索引越多,插入、更新和刪除記錄的速度就越慢。

對於主鍵,關聯式資料庫會自動對其建立主鍵索引。使用主鍵索引的效率是最高的,因為主鍵會保證絕對唯一。

在設計關係資料表的時候,看上去唯一的列,例如身份證號、郵箱位址等,因為他們具有業務含義,因此不宜作為主鍵。

但是,這些列根據業務要求,又具有唯一性約束:即不能出現兩條記錄儲存了同乙個身份證號。這個時候,就可以給該列新增乙個唯一索引。例如,我們假設students表的name不能重複:

alter table students

add unique index uni_name (name);

通過unique關鍵字我們就新增了乙個唯一索引。

也可以只對某一列新增乙個唯一約束而不建立唯一索引:

alter table students

add constraint uni_name unique (name);

MySQL學習筆記(三)索引

索引 簡介索引是乙個單獨的 儲存 在磁碟上的資料庫結構,他們包含著對資料表裡所有記錄的引用指標。使用索引用於快速找出在某個或多個列有一特定值的行,所有mysql列型別都可以被索引,對相關列使用索引是提高查詢操作速度的最佳途徑。索引的優點 可以大大加快資料的查詢速度。在實現資料的參考完整性方面,可以加...

MySQL學習筆記(三) 索引

tips 索引是能提高幫助mysql高效獲取資料的一種資料結構。例如 在10000條資料中查詢某條資料,若沒有索引,則需以遍歷的方式查詢該資料資訊 若有索引,則可通過一定的資料結構儲存方式查詢,以提高查詢效率。1 定義 是最基本的索引,它沒有任何限制。2 實現 1.直接建立索引 create ind...

MYSQL索引 學習筆記

索引分類 索引失效 索引帶來的弊端 幫助mysql進行高效查詢的資料結構 有序 在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指向 資料,這樣就可以在這些資料結構上實現高階查詢演算法,這種資料結構就是索引 換言之,索引就是某種資料結構 如下圖所示 左邊是資料...