バッチ処理でPostgresql7.1にデータをガシガシINSERTしているのですが。PDOを使ったときに、beginTransaction()を使ったほうが明らかに早い。
なぜなのだろう。
あとでsymfonyのTransactionを試してみよう
http://www.symfony-project.com/askeet/4
symfony はPDOではなく、propel/creoleなのでPDOに理由があるかどうかはっきりするかも。PEARのDB/MDBパッケージは使い方忘れてるからもう無理。
public function save($con = null) { $con = Propel::getConnection(); try { $con->begin(); $ret = parent::save($con); // update interested_users in question table $question = $this->getQuestion(); $interested_users = $question->getInterestedUsers(); $question->setInterestedUsers($interested_users + 1); $question->save($con); $con->commit(); return $ret; } catch (Exception $e) { $con->rollback(); throw $e; } }
そういえば、Propelは1.3系からPDOがデフォルトになったんだっけ。。。
入れてみよう。