Очень длинный SQL запрос - что делать?

Рейтинг: 0Ответов: 2Опубликовано: 06.01.2015

Доброго времени суток и с Наступившим Новым Кодом :)

Есть интересная ситуация - существует очень большой (по длине) SQL запрос. Из-за этого он не обрабатывается сервером корректно и выплёвывает 502 ошибку.

Если смотреть со стороны SQL-я самого (через консоль) - запрос отлично отрабатывает, но как только этот же запрос посылаю из php - получаю 502.

Логично, что проблемы кроются где-то в драйвере php-mysql, но как решить эту проблему, понятия не имею. Помогите, пожалуйста. :)

Чтобы имели представление по поводу величины: длина запроса ниже средней - 34387 символов в UTF8.

P.S. Используется mysqli.
P.P.S. В логах nginx явно не написано про mysql. Только вот это:

2015/01/06 04:19:56 [error] 29210#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: tits.by, request: "POST /maps/search/ HTTP/1.1", upstream: "fastcgi://unix://var/run/php5-fpm.sock:", host: "localhost", referrer: "http://www.transinfo.by/maps/"

Ответы

▲ 2Принят

Вопрос решился. Была проблема не в драйвере, а в ядре старинной CMS с которой приходилось работать. Обошелся прямым вызовом execute.

▲ 1

Запросы не бывают длинными, они бывают не оптимизированными. После выполнения запроса поставьте точку остановки и посмотрите выполнился ли запрос. Если запрос не выполнился, смело чтива набирайте по оптимизации SQL.