第2章:索引失效场景大全——10种索引失效的案例 + 反例

本章你将彻底搞懂:MySQL 索引为什么会失效?10 种最经典的索引失效场景,包括函数操作、隐式类型转换、OR 条件、LIKE 以 % 开头、范围查询右侧失效、联合索引非最左匹配、不等于/IS NULL、排序与分组不匹配、字符集不一致等。每个场景都配有完整可运行的 SQL 代码、EXPLAIN 输出对比、真实踩坑经历、修复步骤
配套资源:10 个场景的验证 SQL 脚本(可直接复制执行)、索引失效自检清单(打印版)、联合索引字段顺序决策树。
真实踩坑:我曾把 mobile 字段定义为 varchar 但查询时用 INT 传入,导致全表扫描,3 秒的查询拖垮了整个用户中心;还有一次 WHERE status IN ('paid','shipped') 因为数据分布不均,MySQL 优化器放弃了索引,我花了 4 小时才找到原因;更坑的是,一个用了 ORDER BY created_at DESC 的查询,因为索引顺序是 (status, created_at)status 过滤条件不是常量,触发了 Using filesort,CPU 直接爆了。


2.1 一个“索引在眼前,却用不上”的凌晨故障

2020 年我在一家金融公司做 DBA。某天凌晨 2 点,收到告警:核心订单

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值