У меня есть следующий скрипт, который использовать PDO для подключения к базе данных sqlite3 и сосчитать все записи:PDO Sqlite `fetchAll()` исчерпывает всю память
<?php
ini_set('max_execution_time', 300);
error_reporting(E_ALL);
ini_set("display_errors", 1);
$db = new PDO('sqlite:db/MYDB.sl3');
$result = $db->query('SELECT * FROM MYTABLE');
$rows = $result->fetchAll();
$row_count = count($rows);
echo "Rows: " . $row_count . "\n";
?>
все хорошо, если я запускаю его из оболочки (PHP -CLI):
Rows: 175412
но запустить его из Интернета он выдает мне следующую ошибку:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 14 bytes) in /var/www/test/sqlitepdo.php on line 9
Установка памяти в PHP не является решением, потому что этого не должно произойти, потому что этого не происходит с MySQL такими же результатами, как пример.
Любая идея?
SQLite имеет специальную оптимизацию для 'COUNT (*)', но не для 'COUNT (все остальное)'. –
Да, это работает. Пожалуйста, просто отредактируйте двойное 'echo' в ответе, чтобы я мог его принять. – bsteo
Обе вещи обновлены –