У меня есть консольное приложение ZF2, в котором мне нужно прочитать восемь миллионов записей в базе данных MySQL.
Я пытаюсь выполнить небуферизованный запрос MySQL, но не могу найти правильный способ использования эфира Zend\Db\TableGateway\TableGateway или более непосредственного использования Zend\Db\Adapter\Adapter, возможно, я ищу не в том месте?
Я ищу подходящий пример чтения миллионов строк с использованием Zend Framework 2.
После долгих, долгих, долгих сеансов работы с отладчиком и чтения кода ZF2 я обнаружил, что следующее дало мне желаемое поведение.
// Get a database adapter for the source (defalut) db
$SourceAdapter = $sm->get('Zend\Db\Adapter\Adapter');
// Turn off source database buffering.
$SourceAdapter->getDriver()
->getConnection()
->getResource()
->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,false);
$SourceAdapter->getDriver()
->getConnection()
->getResource()
->setAttribute(\PDO::CURSOR_FWDONLY,true);