控制代碼(二)
阿新 • • 發佈:2021-09-04
MySql官方對索引的定義為:索引是幫助Mysql高效獲取資料的資料結構
可以簡單理解為:排好序的快速查詢資料結構
優勢:提高資料檢索的效率,降低資料庫的IO成本
降低資料排序的成本,降低了CPU的消耗
劣勢:實際上索引也是一張表,該表儲存了主鍵與索引欄位,並指向實體表的記錄,所以索引列也是要佔用空間的
雖然索引大大提高了查詢速度,但是同時也會降低更新表的速度,如對錶進行Insert、UpDate和Delete。因為更新表時,Mysql不僅要儲存資料
還要儲存索引檔案因為更新所帶來的的鍵值變化後的索引資訊
索引只是提高效率的一個因素而已,如果Mysql有大資料量的表,就需要花時間研究建立最優秀的索引
索引分類
單值索引:一個索引只包含單個列,一個表可以有多個單列索引
唯一索引:索引列的值必須唯一,但允許有空值
複合索引:一個索引包含多個列
建立索引的相關情況
1)主鍵自動建立唯一索引
2)頻繁作為查詢條件的欄位應該建立索引
3)查詢與其他表關聯的欄位,外來鍵關係建立索引
哪些情況不建立索引
1)表記錄太少
2)經常增刪改的表
3)資料重複且分佈平均的表字段(比如國籍,大家都是中國,為此欄位建立索引就沒必要了)
4)頻繁更新的欄位不適合建立索引
5)where條件裡用不到的欄位不建立索引
6)