MySql什麼時候需要創建索引?

什麼是索引?

  • 索引(Index)是幫助MySql高效獲取數據的數據結構。

優勢

  • 提高數據檢索的效率,降低數據庫的IO成本
  • 通過索引對數據進行排序,降低數據排序的成本,降低了CPU 的消耗

劣勢

  • 雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如INSERT,UPDATE和DELETE。因爲更新表的時候,Mysql不僅要保存數據,還要保存索引文件每次更新添加了索引的字段,都會調整因爲更新所帶來的鍵值變化後的索引信息
  • 索引也是一張表,該表保存了主鍵與索引字段,並指向實體表的記錄,所以索引列也是要佔用空間的。

哪些情況需要創建索引?

  • 主鍵自動建立唯一索引
  • 頻繁作爲查詢條件的字段應該創建索引
  • 查詢中與其他表關聯的字段,外鍵關係建立索引
  • 單鍵/組合索引的選擇問題,組合索引性價比更高
  • 查詢中排序的字段,排序字段若通過索引去訪問將大大提高排序速度
  • 查詢中統計或者分組字段

哪些情況不要創建索引?

  • 表記錄太少
  • 經常增刪改查的表或者字段
  • 過濾性不好的不適合建索引
  • Where條件裏用不到的字段不創建索引
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章