Drupal 6 Исправить производительность 1 запроса, любым способом

2 000 руб. за проект
21 сентября 2020, 18:27 • 3 отклика • 41 просмотр
Есть запрос который тормозит все и особенно когда оферов становится больше пары сотен.
он подтягивает предложения по текущим квартирам в этом доме ( формат яндекс недвижимость)

->addField("GROUP_CONCAT(DISTINCT `xmlrooms`.`rooms` ORDER BY `xmlrooms`.`rooms` SEPARATOR ', ')","`xmlro

Пример всего запроса https://naydikvartiru.ru/sql.txt
Для чего коркрентый JOIN на скриншоте
Пример где есть оферы но все еще работает https://naydikvartiru.ru/moskva/fresh_1
Проблемная страничка https://naydikvartiru.ru/moskva/zhk-serebryanyj-fo...


Суть проблемы:
Периодически запрос не влазиет в размер кеша mysql ( 300гб), не говоря уже о скорости.
Как правило это дома с большим количеством квартир. (100-1000)
Так же те дома в которых он еще работает и отображает за вменяемое время, следующий JOIN ( он закоментирован ниже) начинает адски затормаживать страничку до 10 секунд, однако сам по себе выполняется за 0.031 поскольку это просто банер с картинкой и текстом. да и таблички там 300 строк.
Насколько я понимаю проблема в том что джоин идет уже к гигантскому массиву.

Насколько я понимаю логику того кто это разрабатывал он просто собирает все данные в один массив, и кладет на его размер и что он собирается с 3 бд кучу раз сортируется и тд, при этом запросы идут вне зависимости от того нужны ли они на этой странице вообще, ничто не кешируется есть только индексы в бд.

Нужно переосмыслить логику этого места, и сделать его более быстрым, по идее до клика на хреф большинство данных просто не нужны вовсе.


nk_xml_import`.`kvartiri`
Большая ( около 600 МБ ) а остальные по размеру никакие.

Решение проблемы будем считать :
я включаю ЖК с самым большим количеством офером и раскоментирую баннер.
Страничка грузится вменяемое время.

Пожалуйста только те кто реально уверен в своих силах, те кто хотят попробовать скорее всего тут так не прокатит, поскольку 3 бд плюс старый друпал вам не дадут этого сделать.
Нужно как минимум хорошо разбираться или в drupal. или реально понимать sql



Файлы
Отзывы
R50 b51ce2c4fbcb6e86e727d5597d9afde0
Заказчик
Работу сделал
3 года назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
 
3 года назад