索引优化实战案例
引言 本文通过5个真实案例,综合运用索引优化知识,展示完整的优化过程。 案例1:订单列表查询优化 1.1 问题 -- 慢SQL SELECT * FROM orders WHERE user_id = 123 ORDER BY created_at DESC LIMIT 20; -- 执行时间:5秒 1.2 分析 EXPLAIN SELECT * FROM orders WHERE user_id = 123 ORDER BY created_at DESC LIMIT 20; 结果: type: ref key: idx_user_id rows: 50000 Extra: Using filesort ← 文件排序 问题: 扫描5万行 需要额外排序(filesort) 1.3 优化 -- 创建联合索引 CREATE INDEX idx_user_created ON orders(user_id, created_at); -- 验证 EXPLAIN SELECT * FROM orders WHERE user_id = 123 ORDER BY created_at DESC LIMIT 20; 结果: type: ref key: idx_user_created rows: 20 Extra: Using index condition ← 无filesort 1.4 效果 执行时间:5秒 → 0.01秒 性能提升:500倍 扫描行数:50000 → 20 案例2:分页查询深分页优化 2.1 问题 -- 慢SQL(翻到第5000页) SELECT * FROM products ORDER BY id LIMIT 100000, 20; -- 执行时间:8秒 2.2 分析 EXPLAIN SELECT * FROM products ORDER BY id LIMIT 100000, 20; 问题: ...