|
|
|
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
|
|||
|---|---|---|---|
|
#18+
Пишу запрос соединяющий 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 станут боком при большом количестве пользователей? Заранее спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 14:27:16 |
|
||
|
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
|
|||
|---|---|---|---|
|
#18+
as.kharlov 0,016 sec Сомневаюсь, что это честное время. Добавляйте слово SQL_NO_CACHE сразу после слова SELECT, чтобы не влиял кэш запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 15:31:16 |
|
||
|
Тестирование DISTINCT vs GROUP BY, тормоза с LIMIT 590,20. Появление temporary
|
|||
|---|---|---|---|
|
#18+
miksoftas.kharlov 0,016 sec Сомневаюсь, что это честное время. Добавляйте слово SQL_NO_CACHE сразу после слова SELECT, чтобы не влиял кэш запросов. Время честное SQL_NO_CACHE везде стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 15:35:18 |
|
||
|
|

start [/forum/search_topic.php?author=xsoni&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 723ms |
| total: | 882ms |

| 0 / 0 |
