Ошибка: Unable to save result set

Setor

Новичок
Ошибка: Unable to save result set

Доброго времени суток!

Смотрел форум по поводу данной ошибки, но предложенные советы похоже, не касаются моего случая.

Имеется запрос, который достаёт из 2х связных таблиц информацию (около 20 тыс. строк) и похоже, иногда не хватает памяти, чтобы результат этого запроса обработать.

Если вы спросите, зачем мне такая куча данных 1м запросом - так было проще сделать кучу разнообразных проверок, чтобы потом обновить состояние некоторых полей. Для проверки используется довольно сложная логика. В принципе, можно было написать 5 термоядерных запросов, которые бы делали то же самое, вот я и думаю, стоит ли разбить ту схему, которая используется сейчас на 2 этапа или всё же переписать запросы?

Таблицы целые, тип InnoDB, мне кажется что ошибка именно из-за извлечения большого кол-ва данных 1м запросом, может быть я ошибаюсь? Тогда поправьте меня.

Explain:
Код:
id  select_type table   type    possible_keys   key             key_len     ref                    rows    Extra
1   SIMPLE      OP      index   PRIMARY         PRIMARY         4           NULL                   25482
1   SIMPLE      OPA     ref     uniq_pr_war     uniq_pr_war     4           dbname.OP.products_id  1
 

Gorynych

Посетитель PHP-Клуба
...только представьте, что этот запрос одновременно выполняется для нескольких пользователей
 

Setor

Новичок
Gorynych
Этот запрос выполняется по Cron'у где-то раз в пол часа...

-~{}~ 10.02.07 00:03:

Результат запроса 7 полей:
1 типа "INT 11"
6 остальных - цифры от 0 до 3х. В селекте COUNT( IF ( простая_логика_сравнения, 1, NULL ) ) AS `ххх`

получаются они все после группировки данных
 

Gorynych

Посетитель PHP-Клуба
Setor

знаете что, скачайте себе какую-нибудь триальную версию утилитки по тестированию серверов, и напустите ее на свой сайт. Сначала не в момент выполнения этого чуда, а потом так, чтобы они совпали. Ну и настройте ее (утилиту) хотя бы на имитацию 50 виртуальных пользователей. И если сайт у вас останется при этом работоспособным, т.е. будет хотябы адекватно кликаться по ссылкам в процессе тестирования - забейте на все, и делайте как хотите. Но я глубоко убежден в том, что сайт завалится.

вот возьмите 15-дневный триал Shadow Security Scanner от http://www.safety-lab.com/ и прогоните тест HTTPonly, выставив опции так, чтобы не плодить больше 50 пользователей.

в любом случае будет полезно - почитаете заодно и предупреждения/рекомендации по безопастности вашего проекта
 

Setor

Новичок
Сначала не в момент выполнения этого чуда, а потом так, чтобы они совпали.
Это чудо выполняется секунды 3 максимум, вряд ли я смогу что-то заметить...

Я всё же решил избавиться от этого старого, некрасивого на мой взгляд куска кода и в ближайшее время немного изменить систему. Собственно, задача заключалась в том, чтобы снять лишнюю нагрузку с сайта, путём выставления флагов продуктам в БД магазина и обновления этих флагов после обновления БД товара со складов...

Мощности растут и становится проблеманичным парсить большие массивы данных, загонять в БД, сверять параметры и т.д. Вот и приходится как-то крутиться...
 
Сверху