我有一个 ZF2 控制台应用程序,我需要在其中读取 MySQL 数据库中的 800 万条记录。
我正在尝试进行无缓冲的 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);