Сортировка перед группировкой и наоборот: что быстрее? - PullRequest
0 голосов
/ 05 апреля 2011

Просто выбросил это здесь, потому что мне стало любопытно, услышав затруднения моего коллеги.

В общем запросе производственной среды будет ли быстрее сортировать сначала перед группировкой или группировать сначала перед сортировкой ?

И да, общая производственная среда. Я знаю, что это зависит от многих вещей: сколько строк вы запрашиваете, сколько строк в исходном наборе результатов, сколько столбцов, какую схему БД я использую, завтра будет ли дождь и т.д. Я знаю, я знаю. Я говорю general , потому что на самом деле у меня нет границ, чтобы явно включить это мое любопытство.

Скажем так, исходя из вашего опыта, что быстрее?

1 Ответ

3 голосов
/ 05 апреля 2011

Для группировки необходимо сначала отсортировать (это сделает двигатель). И если вы попытаетесь отсортировать сначала, результат не обязательно будет отсортирован:

select a, sum(b)
from (
    select a, b
    from c
    order by a 
    ) d
group by a

Так что не пытайтесь сначала сортировать, потому что вам все равно придется сортировать, и это только запутает ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...