MySQL選擇合適的索引列順序
阿新 • • 發佈:2021-10-25
當不需要考慮排序和分組時,將選擇性最高的列放在前面通常是很好的
只用於優化where條件的查詢,能夠最快得過濾出需要的行,對於在where子句中只使用了索引部分字首列查詢選擇性更高
建立索引需要怎麼建立,需要現確定哪個列選擇性更高
經驗法則考慮的是全域性基數和選擇性
所以選擇將customer_id索引列放在第一列
選擇性和基數經驗法則值得研究分析,但是在where子句中的排序、分組和範圍條件等其他因素,可能會對查詢效能差生很大影響
案例
mysql為這個查詢徐州呢了索引(groupId,userId),如果不考慮基數很合理,但檢視一下userId和groupId匹配的行
groupId幾乎滿足標中所有行,索引基本上沒什麼用,需要修改應用程式程式碼,區分這類特殊使用者和組,禁止針對這類使用者和組進行查詢
睜開眼,書在面前 閉上眼,書在心裡