關於Mysql索引的一些簡述
阿新 • • 發佈:2022-03-03
資料結構學習網站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
一、索引是什麼?
索引是幫助mysql高效獲取資料的排好序的資料結構
1.二叉樹:樹的深度過深而造成io次數變多
2.Hash:不支援範圍查詢和模糊查詢
3.B-Tree:所有的鍵值和具體的data分佈在整顆樹中
4.B+Tree:data只儲存在葉子節點中,非葉子節點可存放更多索引。葉子節點包含所有索引欄位,且用指標連線。
二、索引的檔案儲存形式與儲存引擎有關
1.Myisam:索引檔案與資料檔案分離,非聚集索引
●*.frm:表結構檔案
●*.MYD:表資料檔案
●*.MYI:表索引的資料樹檔案
2.Innodb:聚集索引+非聚集索引
●*.frm:表結構檔案
●*.ibd:索引檔案和資料檔案
三、隱藏欄位
InnoDB表必須有主鍵,並且推薦使用整型的自增主鍵?
設計如此,沒有主鍵,則唯一索引;沒有唯一索引,則mysql自建主鍵。整型的排序效能好。自增的插入效率高。
四、聯合索引
最左優先原則: