聚簇索引和非聚簇索引
聚簇索引(聚集索引)
將數據的存儲和索引放在一塊,索引結構的葉子節點保存了行數據
索引字段必須存在,且只能存在一個
非聚集索引(二級索引)
將數據和索引分開存儲,索引結構的葉子節點關聯的是對應的主鍵
索引字段可以存在多個
索引的選取規則
如果存在主鍵:主鍵索引即為聚集索引
如果不存在主鍵:會使用第一個唯一(UNIQUE)索引作為聚集索引
如果表沒有主鍵,或者沒有合適的唯一索引
innoDB就會自動生成一個rowid作為隱藏的聚集索引
id作為聚集索引
每個id對應的葉子節點包含了整行的數據
name作為二級索引
每個二級索引對應的葉子節點里包含的是其主鍵值
回表查詢
先通過二級索引拿到主鍵值
再通過主鍵值回表查詢到數據