powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
4 сообщений из 4, страница 1 из 1
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
    #39107782
as.kharlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу запрос соединяющий 5 таблиц.
Необходимо отобрать только различные и отобрать 20 записей.

Вариант 1: Использую GROUP BY для отбора различных. Результат:
при LIMIT 1, 20 время выполнения 0,578 sec.
при LIMIT 590,20 время выполнения 12,703 sec.
EXPLAIN показывает Using where и Using index. Никаких Using temporary


Вариант 2: Использую DISTINCT для отбора различных. Результат:
при LIMIT 1, 20 время выполнения 0,016 sec.
при LIMIT 590,20 время выполнения 0,016 sec.
EXPLAIN показывает Using temporary

Возникают вопросы:
1. Почему GROUP BY медленнее DISTINCT?
2. Почему с DISTINCT время вывода для последней страницы такое же же как для первой, хотя, вроде бы, должен тоже поднимать все 600 записей для последней страницы.
3. Как DISTINCT может быть вообще быстрее GROUP BY, если пишут, что оптимизатор все равно преобразует DISTINCT в GROUP BY?
4. Могу ли я на основе приведенных выше результатов использовать в моем случае DISTINCT и не заморачиваться или Using temporary станут боком при большом количестве пользователей?

Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
    #39107866
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as.kharlov 0,016 sec Сомневаюсь, что это честное время. Добавляйте слово SQL_NO_CACHE сразу после слова SELECT, чтобы не влиял кэш запросов.
...
Рейтинг: 0 / 0
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
    #39107875
as.kharlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftas.kharlov 0,016 sec Сомневаюсь, что это честное время. Добавляйте слово SQL_NO_CACHE сразу после слова SELECT, чтобы не влиял кэш запросов.

Время честное SQL_NO_CACHE везде стоит.
...
Рейтинг: 0 / 0
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
    #39107878
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as.kharlov,

Тогда показывайте версию MySQL, тексты запросов и их планы.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]