MySQL 索引优化实战:从一分钟查不出到毫秒级返回
一次真实的慢查询排查记录:一张 1000 多万行的业务表,一条看似普通的 SQL 跑了一分钟没出结果。从 OR 条件、单列索引与联合索引的误区,到 EXPLAIN 逐列解读、覆盖索引的"假象"、最左前缀原则,完整复盘整个优化过程。 背景 业务上有一个很常见的需求:查询某个用户经 …
TAG
3 篇文章
一次真实的慢查询排查记录:一张 1000 多万行的业务表,一条看似普通的 SQL 跑了一分钟没出结果。从 OR 条件、单列索引与联合索引的误区,到 EXPLAIN 逐列解读、覆盖索引的"假象"、最左前缀原则,完整复盘整个优化过程。 背景 业务上有一个很常见的需求:查询某个用户经 …
本文为 AI 整理。 最近排查了一条 MySQL 8 的 UPDATE SQL。表的数据量不算特别大,主表约 30 万行,关联表约 1 万多行,但会导致死锁 这个问题比较典型,记录一下排查过程。 1. 原始 SQL 业务逻辑很简单:根据关联表中的某个父级 ID 找到一批业务 …
在上一篇文章《[[使用 pt-archiver 迁移 mysql 数据]]》中,我介绍了使用 Percona Toolkit 工具集中的 pt-archiver 进行历史数据归档的方法。 pt-archiver 功能强大且成熟,但在某些特定场景下,它的性能表现并不尽如人意。 例如 …