聚集索引和非聚集索引

2021-10-06 15:00:19 字數 740 閱讀 5822

如果沒有索引,查詢資料的時候只能一行行掃瞄,效率很差。

mysql分為聚集索引和非聚集索引,簡單來講:

聚集索引是將每個字段建立同樣結構的索引,並且都去乙個固定的檔案查詢資料

非聚集索引是以主鍵的b+樹儲存資料,其他字段根據索引查詢到主鍵再去主鍵樹查詢資料。

查詢1.先查詢有沒有建立索引,如果有建立索引的話:

2.就會到myisam檔案中定位到位址

3.然後去myd檔案中根據位址獲取資料

注:比如以id建立的索引和以name建立的索引,b+tree上儲存的都是myd檔案中對應的位址,如果是同一條資料的話,這個位址是一致的。

innodb儲存引擎下的索引:

如圖儲存的是主鍵-資料的形式

使用 的是b+ tree結構,

1.建立主鍵索引:如果沒有主鍵的話,會選擇不重複的列建立索引,如果沒有不重複列,預設生成主鍵來建立索引。

2.通過主鍵查詢:直接通過主鍵的b+樹查詢資料。

3.通過其他查詢欄位的索引查詢:葉子節點儲存的是主鍵,先查詢主鍵,再去主鍵的樹查詢資料。

聚集索引和非聚集索引

聚集索引和非聚集索引 一 聚集索引和非聚集索引 聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致,聚集索引表記錄的排列順序與索引的排列順序一致,優點是查詢速度快,因為一旦具有第乙個索引值的紀錄被找到,具有連續索引值的記錄也一定物理的緊跟其後。聚集索引的缺點是對錶進行修改速度...

聚集索引和非聚集索引

本文引自 一種索引,該索引中鍵值的邏輯順序決定了表中相應行的物理順序。聚集索引確定表中資料的物理順序。聚集索引類似於 簿,後者按姓氏排列資料。由於聚集索引規定資料在表中的物理儲存順序,因此乙個表只能包含乙個聚集索引。但該索引可以包含多個列 組合索引 就像 簿按姓氏和名字進行組織一樣。聚集索引對於那些...

聚集索引和非聚集索引

聚集索引和非聚集索引 1 聚集索引 聚集索引,表中的資料儲存位置,根據索引的排序進行實際儲存,因此效率是相當高的。因為聚集索引決定了表中資料行的儲存位置。乙個表不可能有兩個或以上的聚集索引,如果乙個表中已經有乙個聚集索引,那麼這個表中其他的索引都將是非聚集索引。表排列順序 表記錄的排列順序與索引的排...