MySQL技术文章
-
本文用一套可复用工作流讲清 MySQL 深分页优化:先识别 OFFSET 大扫描,再选择游标翻页、延迟关联和覆盖索引,最后用执行计划和响应耗时验证结果。429 收藏 -
本文整理一套 MySQL InnoDB 死锁排查工作流:从应用报错开始,查看 InnoDB 状态,定位锁等待环,统一事务加锁顺序,缩短锁持有时间,并在业务侧加入有限重试保护。392 收藏 -
本文按完整工作流讲解 MySQL 慢 SQL 优化:从慢查询日志发现候选 SQL,聚合同类语句,用 EXPLAIN 判断访问方式和扫描行数,再设计联合索引,并通过延迟、扫描行数和业务结果做回归验证。321 收藏 -
从一个唯一索引没有拦住多条 NULL 数据的现场开始,复现 MySQL 唯一索引与 NULL 的行为,再用 NOT NULL、业务默认值和生成列三种方案修复约束边界。109 收藏 -
列表页分页常常要查总数,但 COUNT(*) 一慢,整个页面都会被拖住。本文按完整工作流拆解:先确认筛选条件和扫描行数,再选择联合索引、缓存总数或汇总表,最后给出上线检查清单。329 收藏 -
搜索框查询一上线就变慢,很多时候不是数据量突然失控,而是 LIKE 条件写法让索引用不上。本文从慢查询现场开始,逐步验证左通配符、执行计划、前缀匹配和业务改写,整理一套更稳的模糊搜索排查方法。308 收藏 -
数据库 · MySQL | 5天前 | MySQL · 数据库 · 联合索引 · ORDER BY · 慢查询排查 · mysql order by explain 慢查询 联合索引 filesort
本文从列表接口排序变慢的现场开始,带你用 EXPLAIN 看执行计划,定位 ORDER BY 触发 filesort 的原因,再按筛选字段和排序字段设计联合索引,最后通过 rows、Extra 和耗时变化验证优化效果。203 收藏 -
本文用订单表归档为例,讲清 MySQL 历史数据如何按时间窗口分批搬迁:先确定归档边界,再批量写入归档表,校验数量和金额,最后小批量清理热表,降低锁等待和慢查询风险。261 收藏 -
本文用两个 MySQL 会话复现可重复读和幻读场景,解释快照读、当前读、范围查询和间隙锁的关系,帮助排查线上并发写入问题。455 收藏 -
本文用订单列表查询场景,演示普通二级索引为什么需要回表,以及如何通过覆盖索引减少回表,并用 EXPLAIN 的 Extra 验证优化结果。381 收藏 -
本文用后台订单列表总数统计场景,演示为什么大表每次 COUNT 会拖慢接口,并按精确总数、条件筛选、缓存和汇总表给出优化方案。336 收藏 -
本文用订单号查询变慢的场景,演示 MySQL 隐式转换如何导致索引无法稳定命中,并给出字段类型统一、参数绑定和上线检查方案。152 收藏 -
本文用一次 MySQL 连接数告警场景,演示如何区分连接池突增、慢 SQL 堵塞和长事务占用,并给出排查命令和上线兜底建议。404 收藏 -
本文用订单列表深分页场景,演示为什么 LIMIT 大偏移会变慢,并通过覆盖索引、延迟关联和游标式分页减少无效扫描。339 收藏 -
通过转账场景复现 MySQL InnoDB 死锁,演示如何查看死锁信息、理解反向加锁原因,并用固定加锁顺序、缩短事务和重试机制降低问题概率。429 收藏