一.什麼是索引?
索引是幫助MySQL高效擷取資料的排好序的資料結構(本質是一種優化查詢的資料結構)
二.為什麼要使用索引?
索引的出現就是為了提高查詢效率,就一本新華詞典,我們通過目錄快速鎖定要查詢的“字”在那一頁。其實說白了,索引要解決的就是查詢問題。
三.索引的優缺點?
優點:
- 可以有效的提高查詢效率;
- 可以加速表與表的連接配接;
-
可以減少查詢中分組和排序的時間
缺點:
- 占據磁盤空間;
- 建立和維護索引消耗時間;
- 對表中的資料進行CRUD時,索引也要同時維護,降低了資料的維護速度。
四.索引的設計原則?
- 資料量小的表最好不要建立索引;
- 不是越多越好,常更新的表越少越好;
- 頻繁進行排序或分組的列(group by或者是order by)可以建立索引,提高搜尋速度;
- 如保證主鍵唯一型,可考慮建立唯一性索引;
- 經常用于查詢條件的字段應該建立索引。
五.什麼時候要建立索引?
- 表中的主關鍵字自動建立唯一索引;
- where 子