Я пытаюсь сохранить список из более чем 10000 записей методом CakePHP 2.1, saveMany()
. Но это дает мне либо ошибку 500, либо фатальную ошибку «исчерпана память».
Если я отлаживаю весь массив после его обработки (то есть без вызова метода сохранения), время меньше 0,05 с. Но когда я добавляю метод сохранения ($this->saveMany($save, array('validate' => false));
), он показывает одну из перечисленных выше ошибок.
Я упоминаю, что я использую InnoDB в качестве механизма хранения в MySQL и PHP в качестве языка сценариев.
Что я делаю не так и как я могу это исправить?
EDIT
Я возвращаюсь к этой проблеме, потому что я «решил», почему это огромное количество записей не сохраняется. Причина в том ... что ни одна запись не сохранена. Я протестировал сохранение только первого элемента в сгенерированном массиве, и вот что это происходит: он увеличивает память до предела, а затем умирает. Я поместил его на свой локальный хост с 2 ГБ памяти, и он все еще дает мне ошибку превышения памяти. Это очень странно, и я не могу понять, почему это происходит. Тот же код, примененный к другой модели, работает как положено. Я воссоздал модель и ее таблицу, но безуспешно. Единственная причина, по которой я могу придумать, - это длина имени таблицы, но для меня это не имеет смысла. Что может генерировать это увеличение памяти только для сохранения одной записи?