Прерывание объемного запроса к mySQL

DO
На сайте с 11.02.2009
Offline
54
954

Приветствую всех!

Помогите советом, имеем скрипт php в ходе выполнения которого формируется запрос к базе sql.

тип запроса update

если скрипту отдавать более 600 элементов - выполняется не полностью...

есть доступ ко всем настройкам сервера, менял ограничения по времени выполнения, памяти - делу не помогло.

Такое впечатление, что запрос получается очень объемный и причина тут...

IL
На сайте с 20.04.2007
Offline
435
#1
тип запроса update

а подробнее - UPDATE поля по ключу?..

Выполнить insert в соседнюю таблицу, а потом UPDATE связанных таблиц.. опять же по ключу.

Ещё explain помогает.. разобраться, в чём дело.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
balaboler
На сайте с 15.11.2012
Offline
24
#2

Интуитивно подозреваю, что сообщение с вопросом. Однако ни одного вопросительного предложения нет. В чем вопрос-то?

Киш мири ин тухес унд зай гезунд
DO
На сайте с 11.02.2009
Offline
54
#3
balaboler:11096759:
Интуитивно подозреваю, что сообщение с вопросом. Однако ни одного вопросительного предложения нет. В чем вопрос-то?

Как обойти ограничение не переписывая код)? например изменив настройки сервера, думаю это возможно.

Скрипт из системы управления, штатный.

balaboler
На сайте с 15.11.2012
Offline
24
#4

Если конкретизировать, что за скрипт - то есть небольшая вероятность, что откликнется кто-то, сталкивавшийся с такой же проблемой.

А в общем случае, сперва надо установить в какой строчке скрипта возникает проблема, каков ее характер (ошибка, зависание, и т.п.), какие коды возвращают системные функции (если возвращают). Просто игрой с настройками скорее всего не обойтись.

S
На сайте с 23.05.2004
Offline
315
#5

запрос в базу не может выполниться "не полностью". Он либо выполнился либо нет. Если "нет" - то от базы дается внятный ответ о ошибке.

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

Это просто подпись.
DO
На сайте с 11.02.2009
Offline
54
#6
Stek:11096933:
запрос в базу не может выполниться "не полностью". Он либо выполнился либо нет. Если "нет" - то от базы дается внятный ответ о ошибке.

Это точно? Тогда вообще непонятно)

Если в цикле 2000 запросов, ничего сложного в этом вроде нет.

Скрипт выполняет перемещение товаров в другую группу. Фактически из массива выбранных меняется 1 поле в строке - принадлежность к группе.

Через пхпмайадмин такой запрос по условию выполняется очень быстро, 0,05сек

Через админку 500-550 товаров переносит без проблем. Если больше, то делает только часть изменений.

Скрипт выполняется всего несколько секунд, т.е. его не обрывают, лимит на 300 стоит. Логи чистые...

Да, спрашивали откуда - вебасист в. 305. Перемещение найденных товаров в другую группу.

S
На сайте с 23.05.2004
Offline
315
#7

логи php и работа с базой ничего общего не имеют.

Грубо говоря, вы регулировщик указываете дорогу для 500 автомобилей в час. При этом вас совершенно не интересует, проехал автомобиль по указанной дороге или же свалился через пару метров в пропасть.

DO
На сайте с 11.02.2009
Offline
54
#8

ну вобщем это все лирика, проблему бв решить, конечно, придется разыскивать этот скрипт из 1000 файлов этой cms...

Так не хочется туда лезть!

---------- Добавлено 11-17-2012 в 01:56 AM ----------

и еще я не представляю разницу между 500 и 2000 операций, если только это ограничение в коде искусственно не задано) поковыряю завтра код!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий