2011-02-16 106 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库重建应用程序是一个简单的测试。