タグ

ブックマーク / kaihatsu.mikagamikobo.com (1)

  • Propel::getConnection で一括処理 - りっぷる開発記録

    多くのレコードに対し、繰り返し処理を行なうときのパフォーマンスアップ。 Task テーブルから、複数のタスクを取得し、処理を行ないながらタスクをデリートしていく例。 何も考えずにやると、このようなコードに。 foreach ($tasks as $t) { : (タスク処理) : $t->delete(); } 数が多くなってくると、処理時間の長さが気になってくる。 とくに SQLite を使っているときは、delete のパフォーマンスがネックになりやすい。 そんなときは、このように同じコネクションを使い回す。 $con = Propel::getConnection(TaskPeer::DATABASE_NAME); $con->begin(); foreach ($tasks as $t) { : (タスク処理) : $t->delete($con); } $con->commit(

  • 1