聚簇索引和非聚簇索引

2022-08-24 23:42:12 字數 633 閱讀 8473

資料和索引儲存到一起,找到索引就獲取到了資料。聚簇索引是唯一的,innodb一定會有乙個聚簇索引來儲存資料。非聚簇索引一定儲存有聚簇索引的列值;

innodb聚簇索引選擇順序:

預設選擇主鍵

沒有主機,選擇唯一的非空索引;

都沒有,則隱式定義乙個主鍵;

資料儲存和索引分開,葉子節點儲存對應的行,需要二次查詢,通常稱為[二級索引]或[輔助索引];

1、通過id=7查詢,直接可以取到資料;

2、如果通過name查詢,需先找到id=14,然後再通過id查詢;

輔助索引可以通過輔助鍵直接找到資料位址,不用再訪問主鍵;

1、聚集索引(一般為主鍵)資料行的物理順序和列值邏輯順序相同,乙個表只能擁有乙個聚集索引,可以有多個非聚集索引;

2、使用非聚集索引查詢,沒有完整的資料還得進行二次查詢,會影響查詢效能;

3、聚集索引查詢效率更高,但由於要移動對應資料的物理位置,寫入效能並不高;

由於主鍵的唯一性約束,在插入資料時要保證不能重複。聚集索引由於索引葉節點就是資料頁,要檢查資料唯一性就得遍歷所有資料節點。而非聚集索引上已經包含了主鍵值,所以查詢主鍵唯一性就只需要遍歷所有索引頁就可以了。

聚簇索引和非聚簇索引

一 聚簇索引 clustered indexes 的使用 聚簇索引是一種對磁碟上實際資料重新組織以按指定的乙個或多個列的值排序。由於聚簇索引的索引頁面指標指向資料頁面,所以使用聚簇索引查詢資料幾 乎總是比使用非聚簇索引快。每張表只能建乙個聚簇索引,並且建聚簇索引需要至少相當該錶120 的附加空間,以...

聚簇索引和非聚簇索引

一 聚簇索引 clustered indexes 的使用 聚簇索引是一種對磁碟上實際資料重新組織以按指定的乙個或多個列的值排序。由於聚簇索引的索引頁面指標指向資料頁面,所以使用聚簇索引查詢資料幾乎總是比使用非聚簇索引快。每張表只能建乙個聚簇索引,並且建聚簇索引需要至少相當該錶120 的附加空間,以存...

聚簇索引和非聚簇索引

一 聚簇索引 clustered indexes 的使用 聚簇索引是一種對磁碟上實際資料重新組織以按指定的乙個或多個列的值排序。由於聚簇索引的索引頁面指標指向資料頁面,所以使用聚簇索引查詢資料幾 乎總是比使用非聚簇索引快。每張表只能建乙個聚簇索引,並且建聚簇索引需要至少相當該錶120 的附加空間,以...