【慕课网_性能优化之MySQL优化_学习】【06】
2017-10-26 11:52
417 查看
子查询优化
子查询优化为连接查询
a表中的某一列数据在b表中也有,但在b表中可能有重复的情况
可以使用连接查询加DISTINCT来代替子查询
group by优化
查询演员及演员所参演的电影数量:
EXPLAIN SELECT actor.first_name,actor.last_name,COUNT(*) FROM film_actor INNER JOIN actor USING(actor_id) GROUP BY film_actor.actor_id
可以看到使用了临时表和文件排序
优化:
EXPLAIN SELECT actor.first_name,actor.last_name,c.cnt FROM actor INNER JOIN (SELECT actor_id,COUNT(*) AS cnt FROM film_actor GROUP BY actor_id) AS c USING(actor_id)
如果增加过滤条件,则在子查询里增加,而不是外层
子查询优化为连接查询
a表中的某一列数据在b表中也有,但在b表中可能有重复的情况
可以使用连接查询加DISTINCT来代替子查询
group by优化
查询演员及演员所参演的电影数量:
EXPLAIN SELECT actor.first_name,actor.last_name,COUNT(*) FROM film_actor INNER JOIN actor USING(actor_id) GROUP BY film_actor.actor_id
可以看到使用了临时表和文件排序
优化:
EXPLAIN SELECT actor.first_name,actor.last_name,c.cnt FROM actor INNER JOIN (SELECT actor_id,COUNT(*) AS cnt FROM film_actor GROUP BY actor_id) AS c USING(actor_id)
如果增加过滤条件,则在子查询里增加,而不是外层
相关文章推荐
- 【慕课网_性能优化之MySQL优化_学习】【08】
- 【慕课网_性能优化之MySQL优化_学习】【10】
- 【慕课网_性能优化之MySQL优化_学习】【04】
- 【慕课网_性能优化之MySQL优化_学习】【05】
- 【慕课网_性能优化之MySQL优化_学习】【11】
- 【慕课网_性能优化之MySQL优化_学习】【02】
- 【慕课网_性能优化之MySQL优化_学习】【01】
- 【慕课网_性能优化之MySQL优化_学习】【07】
- 【慕课网_性能优化之MySQL优化_学习】【03】
- 【慕课网_性能优化之MySQL优化_学习】【09】
- MySql学习—— 查询性能优化 深入理解MySql如何执行查询
- mysql性能优化学习笔记(4)索引的优化
- MySQL学习笔记——MySQL性能优化方法简述
- mysql性能优化学习与实战-1
- mysql性能优化学习与实战-2
- mysql性能优化学习笔记(5)数据库结构优化
- mysql性能优化学习
- MySQL性能优化学习
- mysql性能优化学习笔记-参数介绍及优化建议
- 高性能Mysql学习笔记-查询性能优化