建表和索引
索引優化法則
全值匹配案例:
最佳左前綴法則:
如果中間斷了,那麼只部分使用了索引,只有前面的的字段使用了索引
不在索引列上做任何操作(計算,函數,…)
索引中範圍條件右邊的列全失效
儘量使用覆蓋索引
覆蓋索引,直接去索引中取數據,不去表中取數據,大大提高效率
mysql 在使用不等於(!= 或者 <>)的時候無法使用索引導致全表掃描
is null , not null 也無法使用索引
like以通配符開頭(‘%abc…’) mysql索引失效會變成全表掃描
案例如下: %只有寫在最右邊的索引纔會生效
解決like '%字符串%'時索引不被使用的方法?(使用覆蓋索引解決)
使用覆蓋索引,查詢的字段儘量是索引的字段
未使用覆蓋索引會失效,查詢的字段沒有索引
email 沒有使用索引
字符串不加單引號索引失效
少用or,用來連接時會導致索引失效
總結
案例
ordey by 排序 也要是 最佳左前綴法則,不然排序會失效