Выбор (относительно) большой таблицы базы данных

Я использую Google CloudSQL и имею следующий простой код:

<?php
$db = new pdo ( 'mysql:unix_socket=/cloudsql/<appid:id>;dbname=<database_name>', 'root', '' );
$db->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $db->prepare ( "SELECT column1, column2, column3, column4, column5 FROM table" );
$stmt->execute ();
$returned = $stmt->fetchAll ( PDO::FETCH_ASSOC );
echo json_encode ( $returned );
?>

Но поскольку таблица базы данных слишком велика (около 150 000 строк), похоже, что она обрабатывается неправильно. Я продолжаю получать это сообщение об ошибке:

Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.

Я знаю, что проблема в размере, потому что, как только я SELECT только 3 столбца вместо 5, он отображает это просто отлично. На мой взгляд, 150000 строк не требуют слишком много; но это самая большая таблица, которую я создал, поэтому я не знаю, что мне не хватает.

Что я должен делать?

РЕДАКТИРОВАТЬ:

Я также пытался обновить уровень с D0 (125 МБ) до D1 (512 МБ), но это тоже не помогло.

0

Решение

Это предупреждение появляется, когда вы превысили предел памяти для вашего класса экземпляра App Engine. Я предполагаю, что вы находитесь в классе экземпляров «B1», поскольку 150000 строк данных превышают это. Вы можете изменить свой Instance Class, установив его значение в файле app.yaml. Я бы порекомендовал пройти через эта документация Чтобы выбрать класс экземпляра, который соответствует вашим потребностям, все, что выше B1 и F1, должно предоставить вам достаточно памяти. Также убедитесь, что вы закрываете соединение, установив $db = null;

1

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

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

По вопросам рекламы [email protected]