【MySQL优化】MySQL 优化笔记整理-持续更新

1.order by 查询效率低下,导致查询语句十分缓慢。

a.order by 尽量+索引字段

b.order by 索引失效,一般是由于select 的字段中存在非索引字段。

c.复杂的聚合查询语句,尽量拆分成简单的单查询语句。

2.limit 用在in或者其他子查询中的方法

可以将查询结果包装成新的子查询,从而使用limit,示例如下:

原查询语句 :

SELECT stu.name,stu.age,stu.sex,cou.name,cou.score
FROM student stu
WHERE stu.id 
IN (   select stuId  from course cou  where  stu.id = cou.stuId  

order by cou.score  limit 0,10

执行该语句,应该会报错,limit不应该用于in、any、some等等之中。

改造以后:

SELECT stu.name,stu.age,stu.sex,cou.name,cou.score
FROM student stu WHERE stu.id 
IN (   

select id from(

select stuId  from course cou  where  stu.id = cou.stuId  

order by cou.score  limit 0,10

) as temp

猜你喜欢

转载自blog.csdn.net/qq_30490591/article/details/85049339
今日推荐