假设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 的功能,包括插入钩子等(请注意,即使用户模型中没有钩子,此脚本也会超时)。
有什么建议吗?