1. 没有符合最左前缀原则
- like 以%开头,索引无效。
- or语句前后没有同时使用索引
- 组合索引,不是使用第一列索引,索引失效
- 在索引列上使用 IS NULL 或 IS NOT NULL操作
这个和非聚餐索引联合索引的索引存储结构有关。
2. 字段进行了隐式数据类型转化
比如手机号是字符串,但是你写成了number int等,做了隐式的转换
select * from user_info where mobile = xxx;
3. 走索引没用全表扫描效率高
当需要查询的范围已经很大了,全表扫描会更高效。
全表扫描可以顺序读取磁盘,一次读一大块。
索引很可能只能随机读取磁盘,一次读一条。
如有错误欢迎指正