|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Всем привет Помогите оптимизировать запрос. Пробую расставить индексы, но не помогает что-то, недоконца понимаю глядя на EXPLAIN что надо сделать. Запрос такой: Код: plsql 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.
Вывод: Скрин EXPLAIN - а То что стрелочками отметил, вижу, что неправильно, но не пойму что именно и где именно что сделать, где добавить индекс и т.д. Пробовал по разному, добавлял, удалял индексы, но результат не очень и менялся. Вот этот <derived6> Это какая строка запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2020, 22:12 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Неужели было так сложно отформатировать запрос, чтобы он нормально влезал в экран? ADMINCHIKKK Пробую расставить индексы, но не помогает что-то Так ты своими руками убил навылет возможность использовать индексы для половины таблиц. Вот нахрена нужны подзапросы (tbl1, tbl3, tbl4, tbl7), в которых нет группировки? заменяй на прямое обращение к таблицам, а их WHERE переноси в основной запрос или в условия связывания (в зависимости от логики) - тогда и заработают индексы... И внимательно пройди по типу связывания. Везде ли нужен именно LEFT JOIN? думаю, после анализа половина заменится на INNER JOIN, что ещё облегчит запрос. ADMINCHIKKK Вот этот <derived6> Это какая строка запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 07:34 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
[quot Akina#22163753]Неужели было так сложно отформатировать запрос, чтобы он нормально влезал в экран? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
авторВот нахрена нужны подзапросы (tbl1, tbl3, tbl4, tbl7), в которых нет группировки? заменяй на прямое обращение к таблицам, а их WHERE переноси в основной запрос или в условия связывания (в зависимости от логики) - тогда и заработают индексы... Иммешь ввиду не делать Код: plsql 1. 2.
а сразу так: Код: plsql 1. 2.
автора их WHERE переноси в основной запрос или в условия связывания А разве если where будет в подзапросе, то не быстрее отработает? Разве не получится что уже после первого where дальше уже меньше будет строк для обработки? А так придётся всё это, весь это объём обрабатывать и только уже в конце выбрать то что надо? Или я не так что-то представляю? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 07:42 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Переформатировал запрос Код: plsql 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. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 07:45 |
|
|
start [/forum/topic.php?fid=47&fpage=19&tid=1828474]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 179ms |
0 / 0 |