簡體   English   中英

原則1.2的性能,創建大量記錄(〜5000)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM