Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
Добрый день, имеем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. `real_number` содержит "0", если `real_number` = `number`, или другое число, если это условие не выполняется, запрос, должен вернуть уникальные номера: Код: sql 1. 2. 3. 4. 5. в итоге получается экстремально медленно, EXPLAIN показывает Код: sql 1. Насколько я понимаю, всё дело в GROUP BY, можно ли как-то от него избавиться? В том числе оптимизировав саму структуру хранения данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 06:50 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
poiuytrewq`real_number` содержит "0", если `real_number` = `number`, или другое числоА каков смысл такого хранения? что мешает сразу в поле `real_number` хранить реальное значение, а не абстрактный ноль? кстати, тогда содержимое будет больше соответствовать названию... измените - это заодно будет и оптимизацией способа хранения данных. А заодно для конкретно этого запроса создайте индекс по (`param1`, `param2`, `real_number`). poiuytrewqзапрос, должен вернуть уникальные номера: Лучше использовать DISTINCT, а не группировку. Код: sql 1. 2. 3. 4. Впрочем, если не внести изменений в хранение, лучше не станет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 07:39 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
AkinaЛучше использовать DISTINCT, а не группировку. А чем, собственно? Следующий запрос по-прежнему Код: sql 1. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 08:00 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
poiuytrewqСледующий запрос по-прежнему А что Вы ещё хотите от сервера без индекса? Текст запроса - тайна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 08:07 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
Текст запроса - построен после изменения хранения и избавления от нулей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 08:08 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
AkinaТекст запроса - построен после изменения хранения и избавления от нулей? Создал индекс (`param1`, `param2`, `real_number`), теперь всё хорошо Код: sql 1. Но в исходной таблице таких paramN довольно много, десятка два, создавать индексы для каждой искомой комбинации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 11:34 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
poiuytrewq Код: sql 1. 2. Это можно заменить на Код: sql 1. По идее, это будет быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 12:15 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
poiuytrewqв исходной таблице таких paramN довольно много, десятка два, создавать индексы для каждой искомой комбинации? Нет, конечно. Нужно проанализировать частоту использования параметров для отбора и селективность по ним. На те, который нужны раз в год, или которые отбирают более 10% записей, можно смело забить, а по остальным думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 12:46 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
miksoftЭто можно заменить на Код: sql 1. По идее, это будет быстрее. Благодарю, но от GROUP BY вообще удалось избавиться за счёт DISTINCT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 12:51 |
|
||
|
Нужна помощь с оптимизацией запроса (избавление от GROUP BY)
|
|||
|---|---|---|---|
|
#18+
poiuytrewqmiksoftЭто можно заменить на Код: sql 1. По идее, это будет быстрее.Благодарю, но от GROUP BY вообще удалось избавиться за счёт DISTINCTЭто сугубо синтаксический сахар. Внутри оно работает все равно примерно так же (с точностью до сортировки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 13:33 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39387314&tid=1830980]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 130ms |

| 0 / 0 |
