聚簇索引:將資料儲存與索引放在一塊,找到索引也就找到了資料。
非聚簇索引:將資料儲存與索引分開,索引結構的葉子節點指向資料的對應行。myisam通過key_buffer把索引先快取在記憶體中,訪問資料時,在記憶體中直接搜尋索引,然後通過索引找到磁碟對應資料。
注意:innodb中,在聚簇索引之上建立的索引稱之為輔助索引,輔助索引訪問資料需要二次查詢,非聚簇索引都是輔助索引。輔助索引葉子節點儲存的不再是物理位置,而是主鍵值。
聚簇索引具有唯一性:由於聚簇索引是將資料跟索引放在一起,因此乙個表僅有乙個聚簇索引。聚簇索引預設是主鍵,如果表中沒有定義主鍵,innodb會選擇乙個唯一的為空索引代替,如果沒有這樣的索引,innodb會隱式定義乙個主鍵來作為聚簇索引。
聚簇索引的優缺點:
聚簇索引與非聚簇索引
聚簇索引介紹 聚簇索引並不是一種單獨的索引型別,而是一種資料儲存方式。具體的細節依賴於實現方式,例innodb的聚簇索引實際上在同乙個結構中儲存了b tree索引和資料行。當表有聚簇索引時,他的資料行實際放在索引的葉子頁 leaf page 術語 聚簇 聚簇索引實現 儲存引擎負責實現索引,因此不是所...
聚簇索引與非聚簇索引
mysql的索引主要使用b 樹和雜湊索引的方式進行組織。雜湊索引底層即是雜湊表,查詢時只需要進行一次雜湊操作即可得到位址,查詢速度比較快,但是查詢時操作只適合 的查詢操作,對於範圍查詢不友好,因此只適用於大多數需求為單錶查詢的情況。mysql中常用的兩大引擎myisam和innodb 對於b 樹的使...
聚簇索引與非聚簇索引區別
聚集索引與非聚集索引的區別是 葉節點是否存放一整行記錄 innodb 主鍵使用的是聚簇索引,myisam 不管是主鍵索引,還是二級索引使用的都是非聚簇索引。下圖形象說明了聚簇索引表 innodb 和非聚簇索引 myisam 的區別 聚簇索引與非聚簇索引 1.對於非聚簇索引表來說 右圖 表資料和索引是...