|
|
|
оптимизация MySQL
|
|||
|---|---|---|---|
|
#18+
ladoga12422. При переключении на вкладку событий по конкретному объекту в лог медленных запросов попался вот такой (время выполнения несколько секунд): SELECT DATE_FORMAT(ev.receivedtime, '%Y.%m.%d') receiveddate, DATE_FORMAT(ev.receivedtime, '%Y.%m.%d %H:%i:%s') receivedtime, ev.receivedtime receivedtime2, CONCAT(ev.clasificator, " ", ev.eventcode, " ", ev.zonenumber) eventcode, ev.eventname, ev.reactedtime, HEX(CAST(ev.receivedlevel AS UNSIGNED)) receivedlevel, HEX(CAST(ev.retranslatorlevel AS UNSIGNED))retranslatorlevel, IF(ev.name IS NULL, HEX(CAST(ev.retranslator AS UNSIGNED)), ev.name) retranslatorname FROM (SELECT * FROM events LEFT JOIN retranslators ON events.retranslator = retranslators.nr WHERE events.objectnr='4103' and events.linenr='1' and events.receivernr='1' and (events.repeated =2 or events.repeated = 'No') ORDER BY events.receivedtime DESC LIMIT 50) ev ORDER BY receivedtime2 DESC; 0. Ужасно оформляете код. Так вот гораздо лучше читать и понимать Код: 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. 1. Не вполне понятно, для чего форматирование вынесено в обёртку. Да и вторая сортировка вроде лишняя. 2. Смешались в кучу строки, числа...автор(events.repeated =2 or events.repeated = 'No') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 10:21:53 |
|
||
|
оптимизация MySQL
|
|||
|---|---|---|---|
|
#18+
Поля events.repeated и events.retranslator не проиндексированы, кажись. Это плохо. Проверьте наличие индексов на остальных полях, по которым идёт связывание таблиц и отбор записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 10:29:11 |
|
||
|
оптимизация MySQL
|
|||
|---|---|---|---|
|
#18+
vkleevents.retranslatorПо этому полю индекс не нужен, т.к. events всегда будет ведущей таблице в JOIN-е. А вот нужен индекс по полю retranslators.nr По таблице events надо смотреть статистику данных. Если поле objectnr имеет высокую селективность, то будет достаточно индекс по нему. Если нет, то надо смотреть на селективность в совокупности с другими полями, упомянутыми в секции WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 15:26:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39143370&tid=1832303]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 468ms |

| 0 / 0 |
