什么情况下索引会失效?即查询不走索引?
下面列举几种不走索引的 SQL 语句:
1、索引列参与表达式计算:
2、 函数运算:
3、%词语%–模糊查询:
4、 字符串与数字比较不走索引:
“`mysql
CREATE TABLE 'a' ('a' char(10));
EXPLAIN SELECT * FROM 'a' WHERE 'a'="1" — 走索引
EXPLAIN SELECT * FROM 'a'WHERE 'a'=1 — 不走索引,同样也是使用了函数运算
“`
5、 查询条件中有 or ,即使其中有条件带索引也不会使用。换言之,就是要求使用的所有字段,都必须建立索引:
6、正则表达式不使用索引。
7、 MySQL 内部优化器会对 SQL 语句进行优化,如果优化器估计使用全表扫描要比使用索引快,则不使用索引。
阅读全文
人机验证(防爬虫)
扫码关注公众号:帅地玩编程
发送: 验证码
提醒:提交验证后记得刷新当前页面

提交
评论(3)
第7种情况的例子:https://blog.csdn.net/sjhcqw/article/details/109103008?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-7-109103008.pc_agg_new_rank&utm_term=%E8%8C%83%E5%9B%B4%E6%9F%A5%E8%AF%A2%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E7%B4%A2%E5%BC%95&spm=1000.2123.3001.4430
SELECT * FROM ‘manong’ WHERE `uname` LIKE ‘%码农%’ — 走索引
SELECT * FROM ‘manong’ WHERE `uname` LIKE “%码农%” — 不走索引
貌似两个都不会走索引吧,%不能在左边。
手误,已经更改,谢谢