[英]doctrine 1.2 performance, creating a large number of records (~5000)
假設用戶是擴展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的功能,包括插入掛鈎等(請注意,即使用戶模型中沒有掛鈎,該腳本也會超時)。
有什么建議嗎?
您應該嘗試Doctrine_Collection
類,該類允許批量插入:
$collection = new Doctrine_Collection('tablename');
$collection->add($record1);
$collection->add($record2);
$collection->add($record3);
$collection->add($record4);
$collection->save();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.