|
|
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
Доброго дня Прошу у вас помощи в ускорении запроса. Выполняет мучительно долго уже при двух фильтрах, а их может быть 10+. Мои знания sql оставляют желать лучшего, и решение может вызвать у некоторых боль, но другого метода я не придумал. Суть Есть 5 главных таблиц и еще 10 дополняющих (в дополняющих хранятся только уникальный id и title) В трёх главных есть уникальный id, две остальные его не имеют, но привязаны к одной из двух имеющей уникальный id + содержат id к второстепенной таблице. Структура Три из самых главных имеют вид apartment ( id, building... ) building ( id, builder, district, steet... ) district ( id, town... ) Две остальные metros ( metro_id, district_id... ) banks ( bank_id, building_id... ) Остальные же имеют вид типа town ( id, title ) street ( id, title ) ... Сам запрос Код: 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. Ко всем таблицам тянусь через LEFT JOIN. Другого метода не нашёл, но уверен что он есть. Сейчас с лефтами он приходит за 7 секунд. Естественно такое дело не годится + ещё нужно добавить пару таблиц на вроде metros, и при условии некоторого кол-во фильтров, дело может и на минуту растянутся. Подскажите пожалуйста, в какую сторону хотя бы копать. База содержит 60к строк в apartment ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 11:28 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
lekareon, Покажите план запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 11:30 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
Наверно поспешил с ответом. Я не составлял план. Только рисовал взаимосвязь таблиц. Вам он нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 11:42 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
lekareon, Добавьте слово EXPLAIN перед запросом и выполните его. Результат покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 11:42 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
lekareon, смотрите на все таблицы, где type=ALL (кроме основной) скорее всего, вы их ни с чем не связали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 12:02 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
Какой профилёр такие картинки строит красивые?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 12:13 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
XsevenBetaКакой профилёр такие картинки строит красивые?:) phpMyAdmin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 12:22 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
tanglirlekareon, смотрите на все таблицы, где type=ALL (кроме основной) скорее всего, вы их ни с чем не связали Снимаю шляпу. Эффект поразителен. С 13 секунд до 120мс. Еще немного урезал тип полей. Кеш тоже стал возвращаться на 4мс быстрее, теперь 8мс. Спасибо огромное, буду знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 12:45 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
lekareon, если ты будешь все свои вапросы так задавать, никто тебе ничего не скажет. тут у меняjoin,тут еще что-то, тут у меня еще какие-то второстепенные таблицы.... всех таблиц DDL, полный запрос, желательно еще план. тогда что-то можно будет сказать сможет быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2016, 21:07 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39169452&tid=1832155]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 484ms |

| 0 / 0 |
