【MySQL優化】MySQL 優化筆記整理-持續更新
阿新 • • 發佈:2018-12-18
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
)