您的位置:首页 > 数据库 > MySQL

【慕课网_性能优化之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)



如果增加过滤条件,则在子查询里增加,而不是外层
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql