数据库
首页 > 数据库> > 是否对LIMIT的MySQL JOIN内部进行了优化?

是否对LIMIT的MySQL JOIN内部进行了优化?

作者:互联网

一个表社区,其ID:int,名称:varchar.另一个表category_people为community_id:int,person_id:int.带有LIMIT查询的JOIN可能是

SELECT b.user_id, group_concat(a.name SEPARATOR ',') as groups
FROM communities a
JOIN communities_users b
ON a.id = b.community_id
GROUP BY b.user_id
LIMIT 1000
OFFSET 2000;

在此查询中,MySQL将执行任何内部优化,并且(a)先执行limit,offset部分然后再进行联接,或者(b)在全表上执行联接,然后获取limit,offset窗口吗?

解决方法:

参照MySQL 5.6手册LIMIT Optimization,它看起来像是(a):

“ MySQL一旦向客户端发送了所需的行数,它将立即中止查询,除非您正在使用SQL_CALC_FOUND_ROWS.”

标签:join,query-optimization,mysql
来源: https://codeday.me/bug/20191201/2082464.html