表community
为id: int, name: 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)执行限制,首先偏移部分并稍后加入,或者(b)在全表上执行连接然后获取限制,偏移窗口?
答案 0 :(得分:3)
在LIMIT Optimization上引用MySQL 5.6手册,似乎是(a):
“只要MySQL向客户端发送了所需的行数,它就会中止查询,除非您使用的是SQL_CALC_FOUND_ROWS。”