Какой фактор определяет, сколько заданий по уменьшению карты используется для запроса?

У меня 2,5 миллиона строк данных и 6 столбцов. При выполнении запроса через улей я иногда получаю 1 задание, иногда 2 задания. Однако мне это кажется совершенно случайным. Какова мера для улья, сколько заданий по уменьшению карты он выполняет для запроса?

Я ценю ваш ответ!

ОБНОВИТЬ

Запросы:

SELECT r.title, r.rank FROM ratings r JOIN genres g ON r.title=g.title WHERE g.genre='Action' ORDER BY r.rank DESC LIMIT 1;

-> 2 вакансии

select distinct(genre) from genres

-> 1 работа


person Carol.Kar    schedule 08.12.2013    source источник
comment
Вы выполняете один и тот же запрос и получаете разное количество заданий?   -  person Mike Park    schedule 08.12.2013
comment
@climbage при выполнении одного и того же запроса я получаю одни и те же задания, однако, когда запросы становятся все больше и больше, я получаю, например, до 3 заданий. Почему? Какой алгоритм определяет количество заданий для запроса?   -  person Carol.Kar    schedule 08.12.2013
comment
Пожалуйста, включите два запроса, которые вы используете, чтобы помочь нам лучше понять и объяснить, почему вы видите больше вакансий.   -  person Chris White    schedule 08.12.2013
comment


Ответы (1)


Каждое задание обычно имеет карту и часть сокращения.
Механизм запросов решает, сколько заданий будет создано и что произойдет в каждом задании в своих частях карты и сокращения.
Всегда будет оптимизация для некоторых указать, чтобы попытаться выполнить наименьшее количество возможных заданий.

(Очень) упрощенный пример выполнения вашего 1-го запроса:
1-е задание: Картографы будут читать обе таблицы r и g, применяя фильтр g.genre='Action', а затем редукторы получат данные от картографа (распределенные ключом соединения title ) и выполните соединение.
2-е задание: промежуточным результатом 1-го задания были объединенные данные таблиц, теперь вы попросили упорядочить их, чтобы картографы считывали немедленный вывод с последнего этапа, один (!) Редуктор получит все данные от мапперов, редуктор отсортирует эти данные.

Чтобы убедиться, сколько этапов (заданий) генерирует каждый запрос, вы можете использовать команду EXPLAIN, как описано здесь

person dimamah    schedule 08.12.2013