Laravel выдает ошибку SQLite при переходе с локального Homestead на prod в AWS

Я создал приложение, которое использует библиотеку Archon для создания и управления кадрами данных, вот ссылка (Великая Библиотека между прочим!).

Приложение создаст большой массив, содержащий дубликаты. Я использую функциональность dataframe Archon для выполнения операции groupBy, так что я получаю счетчик каждой уникальной записи в массиве.

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

Локально это работает нормально. Я использую Vagrant с VirtualBox — и у меня там работает Homestead Box. Он работает в 64-битной системе Ubuntu.
Я недавно развернул свое приложение на экземпляре эластичного бобового стебля, и он работает на 64-битной Amazon Linux / 2.6.6.

После развертывания я получаю сообщение об ошибке

SQLSTATE[HY000]: General error: 1 too many SQL variables

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

Вот код, который я использую, который выдает ошибку:

$df = DataFrame::fromArray($batch_array);
$senders_emails = $df->query("SELECT a,sum(b) AS bFROM dataframe GROUP BY 1ORDER BY 2 DESC")->toArray();

Кто-нибудь достаточно хорошо понимает SQLite / Archon / Homestead против EB, чтобы помочь?
Буду очень признателен!

0

Решение

ваш $batch_array слишком много данных.

рассмотреть этот путь

$sendersEmails = [];
foreach (array_chunk($batch_array, 100) as $chunk) {
$df = DataFrame::fromArray($chunk);
$emails = $df->query("SELECT a,sum(b) AS bFROM dataframe GROUP BY 1ORDER BY 2 DESC")->toArray();
$sendersEmails = array_merge($sendersEmails, $emails);
}

ВНИМАНИЕ: это может привести к переполнению памяти

Для принципиального решения вопроса необходимо уменьшить количество $batch_array данные

Каков максимальный размер запроса для MySQL?

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector