《高性能MySQL》第6讲:查询性能优化
今天我们来深入探讨MySQL查询性能优化的艺术。就像做一道菜,有了好的食材(表结构)和厨具(索引),还需要掌握火候和技巧(查询优化)才能做出美味佳肴。
6.1 为什么查询速度会慢
想象你在餐厅点餐,从下单到上菜要经历多个环节:服务员接单、厨房准备、厨师烹饪、传菜员上菜。MySQL查询也是如此,它有自己的生命周期:
- 客户端发送查询请求
- 服务器检查查询缓存
- 解析SQL并生成执行计划
- 执行引擎调用存储引擎API
- 返回结果给客户端
慢查询的三大元凶:
- 网络传输:就像外卖配送距离远
- CPU计算:复杂的计算就像需要长时间炖煮的菜品
- I/O操作:从磁盘读取数据好比从仓库取食材
真实案例:
-- 一个需要扫描5073行却只返回10行的低效查询
EXPLAIN SELECT * FROM sakila.film_actor 