Userが Doctrine_Record を拡張するモデルであると仮定して、5000 個のユーザー レコードを作成する以下の (任意の) コードを考えてみましょう。
$conn->beginTransaction();
for ($i = 1, $i < 5001, $i++) {
$user = new User();
$user->some_field = $i;
$user->save();
$user->free(true);
}
$conn->commit();
このスクリプトが 30 秒後にタイムアウトし、すべてのユーザーを作成できていないことがわかりました。このコードを最適化してより迅速に動作させる方法はありますか? レコードを作成するために通常の古い SQL を書くことを検討していますが、挿入フックなどを含む Doctrine_Record の機能を失います (ユーザー モデルにフックがなくても、このスクリプトはタイムアウトすることに注意してください)。
何かアドバイス?