如何避免选错索引
首先說下,索引選擇的標準有:掃面行數,是否創建臨時表,是否排序等。來看下面的例子。
選擇了B列上索引,所以掃描了5萬多行。
采用 force index 強行選擇一個索引
弊端:一來這么寫不優美,二來如果索引改了名字,這個語 句也得改,顯得很麻煩。而且如果以后遷移到別的數據庫的話,這個語法還可能會不兼容。
修改語句,引導 MySQL 使用我們期望的索引
選擇索引b的原因是因為語句中出現order by b,即需要對查詢出的結果對b列進行排序,所以直接用索引b的話是不需要排序。
那么我們將order by b 修改為 order by b,a, 對a列,b列都得進行排序,這種情況下,優化器就會選擇索引a。
以新建一個更合適的索引,來提供給優化器做選擇,或刪掉誤用的索引
這個就不多解釋了,直接把索引b刪除了就行。
總結
- 上一篇: 索引的优点
- 下一篇: 为什么delete表,还会占磁盘空间?