数万件のCSVデータをDBにクエリで流し込もうとしたとき、この問題にぶつかった。

原因はカンタンで、Zend_DbはデフォルトでプロファイラがONになっていて、実行したクエリをキャッシュする。
普段はありがたいのだが、大量のクエリを実行する場合にはOFFにすべし。

// とりあえず、Zend_Db_Tableを継承したクラスの場合。
class My_Db_Table_Hoge extends Zend_Db_Table
{
    ...略...
    // 大量のクエリを実行する前に、プロファイラをOFFにする処理を記述。これでクエリはキャッシュされなくなる。
    $this->getAdapter()->getProfiler()->setEnabled(false);
    ...略...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Name *
Email *
Website

*