|
|
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Запрос выполняется очень медленно. Это внутренняя часть, выделенная из общего запроса, и она выдает 2 записи и выполняется 2 секунды. Полный запрос, в котором 400 записей, соответственно, выполняется 4 минуты. Как оптимизировать запрос? Можно ли переписать на Join? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 13:32 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
svnvlad, Показывайте план запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 13:40 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
miksoft, как показать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:14 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Уйди от подзапроса во where, добавь ещё одну таблицу в источник, а отбор максимального замени на сортировку и лимитирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:33 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
AkinaУйди от подзапроса во where, добавь ещё одну таблицу в источник, а отбор максимального замени на сортировку и лимитирование. Где-то здесь была целая статья про отбор максимального. Почему же там нет ни одного примера с сортировкой и лимитированием? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:40 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
svnvladПочему же там нет ни одного примера с сортировкой и лимитированием?Потому что решается задача отбора для группы, а не по всему массиву. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:52 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
AkinasvnvladПочему же там нет ни одного примера с сортировкой и лимитированием?Потому что решается задача отбора для группы, а не по всему массиву. Ну полный запрос вот так выглядит Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:18 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvlad, Показывайте план запроса. Вот план запроса. Что он дает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:22 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
AkinaУйди от подзапроса во where, добавь ещё одну таблицу в источник, а отбор максимального замени на сортировку и лимитирование. Не совсем понял, как уйти от подзапроса и что значит добавить еще одну таблицу в источник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:35 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Переписал подзапрос вместо MAX на LIMIT 1, результат точно такой же - 219 мс. Код: sql 1. 2. 3. 4. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2016, 05:23 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Также нашел лишний AND в подзапросе. Убрал, общее время большого запроса сократилось с 4 минут до 13 секунд. Но все равно много, потому что на самом деле там скалярных подзапросов в самом болшом запросе не 1, а около 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2016, 05:30 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
svnvlad, INNER JOIN замени на LEFT JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2016, 14:03 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Злой Бобрsvnvlad, INNER JOIN замени на LEFT JOIN Зачем? Inner же быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 08:15 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Злой Бобрsvnvlad, INNER JOIN замени на LEFT JOIN Заменил. Запрос вместо 14 секунд стал выполняться за 20 и более минут (не дождался). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 08:40 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
Как в EMS MySQL Manager-е посмотреть план запроса? Похоже то, что он выдает как план, это совершенно не то, что нужно. Там нет времени выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 09:01 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
svnvlad, а никак. в оригинале план взятый из команды explain не показывает время выполнения запроса. нужно два раза запускать один раз для плана, второй раз для измерения. ems вообще какие-то поверхностные программы выпускает для всех субд сразу. используйте dbforge ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 14:46 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
svnvladЗапрос выполняется очень медленно. Это внутренняя часть, выделенная из общего запроса, и она выдает 2 записи и выполняется 2 секунды. Полный запрос, в котором 400 записей, соответственно, выполняется 4 минуты. Как оптимизировать запрос? Можно ли переписать на Join? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. вообше долно быстро работать ...ну если на каждом жоинте не много детишек и индексы на месте. Судя по плану, вроде бы все ок, но 2 секунды это ни в какие ворота... Когда много жоинтов, оптимизатор может запутаться. Варинаты: 1. обновите статистики, проверьте на другом сервере, другой версии. т.е. убедитесь что проблема не зависит (или зависит?) от фаз луны... 2. начните собирать запрос с начала -- cch1, потом c1. то есть в порядке как в ЕХПЛАИН. Это не обязательно самый оптимальный порядок но для первого проближения сойдет. Меряйте время -- на каком то этапе время прыгнет с 2 милисекунд до 200 милисекунд вот тут то и ловите ЕХПЛАИН. Возможно увидете как изменился порядок таблиц в ЕХПЛАИН. есть возможность закрепить порядок но это только после исследования... 3. Успехов :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2016, 05:51 |
|
||
|
Ускорить запрос
|
|||
|---|---|---|---|
|
#18+
[quot svnvlad]Запрос выполняется очень медленно. Это внутренняя часть, выделенная из общего запроса, и она выдает 2 записи и выполняется 2 секунды. Полный запрос, в котором 400 записей, соответственно, выполняется 4 минуты. Как оптимизировать запрос? парни, бессмысленно оптимизировать часть запроса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2016, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39345575&tid=1831199]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 462ms |

| 0 / 0 |
