MySQL JOIN с LIMIT оптимизирован внутри? - PullRequest
3 голосов
/ 02 марта 2012

Стол community как id: int, name: varchar. Другой стол category_people как community_id: int, person_id: int. JOIN с запросом LIMIT может быть

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 выполнит какие-либо внутренние оптимизации и (а) выполнит лимит, сначала смещает часть, а затем объединит или (б) выполнит объединение по полной таблице, а затем выберет окно смещения, смещения?

1 Ответ

3 голосов
/ 02 марта 2012

Ссылка на руководство по MySQL 5.6 по LIMIT Optimization , кажется, что (a):

"Как только MySQL отправил требуемое количество строк клиенту, он прерываетсязапрос, если вы не используете SQL_CALC_FOUND_ROWS. "

...