InnoDB存儲引擎根據索引類型不同,分為聚簇索引和二級索引
聚簇索引:葉子節點存放的是實際數據
二級索引:存放的是主鍵值,不是實際數據
1.對索引使用左或者左右模糊匹配
select * from t_user where name like '%林‘;
因為B+樹是按照索引值有序排列存儲的,只能根據前綴進行比較
查詢結果可能是哪個索引值開始比較,于是就只能通過全表掃描的方式查詢
2.對索引使用函數
索引保存的索引的是索引字段的原始值,而不是經過函數計算后的值
3.對索引進行表達式計算
4.對索引隱式類型轉換
Mysql在遇到字符串和數字比較的時候,會自動把字符串轉為數字,然后再進行比較
5.聯合索引非最左匹配
6.WHERE子句中的or
如果在or前的條件列是索引列,而在or后的條件列不是索引列,那么索引會失效