MySQL データベースの 800 万レコードを読み取る必要がある ZF2 コンソール アプリケーションがあります。
バッファリングされていない 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);