2011-02-16 54 views
0

我讀sqlLite更適合SELECT而不是插入 ,尤其是對於併發插入,因爲鎖定了整個數據庫文件 但我想知道您的最後一點:)。sqlite併發批量插入

foreach($rows as $row){ 
    if(null === $model->check($row->id,$row->name)){ 
     //prepare date 
     $model->insert($data); 
    } 
} 

代碼是Gearman的工人裏面,所以我已經 多個實例:

所以,如果我讓自己變成麻煩 有這樣的事情我不知道。

在此先感謝。

+0

根據我對SQLite的經驗,是的,這會導致問題。至少在我以前的經驗中,由於鎖定,循環中的UPDATE和INSERT具有較高的故障率。 – netcoder 2011-02-16 15:33:13

回答

2

您可能也想看看Berkeley DB。 Berkeley DB的SQL API與SQLite兼容,但它具有更高的併發性,因爲它不需要獨佔數據庫寫入鎖定。因爲API是SQLite兼容的,所以根據Berkeley DB庫重建應用程序是一個簡單的測試。