2011-02-16 8 views
0

나는 을 삽입하기보다는 SELECT에 대해 sqlLite를 읽는 것이 더 좋으며 특히 전체 데이터베이스 파일을 잠그기 때문에 동시성 삽입에 특히 유용하지만 마지막 점을 알고 싶습니다. :).sqlite 동시성 벌크 삽입

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

코드가 Gearman을 노동자 내부에 내가 인스턴스를 두 개 이상했습니다 있도록 : 나는 그런 일에 문제 에 자신을 얻는 경우에

그래서 궁금하네요.

미리 감사드립니다.

+0

SQLite를 사용한 경험으로 인해 문제가 발생합니다. 루프의 UPDATE와 INSERT는 적어도 이전 경험에서 잠금 때문에 높은 실패율을 보입니다. – netcoder

+0

빠른 답장을 보내 주셔서 감사합니다. 일괄 삭제에 문제가 있는지 알고 계십니까? – Whisher

답변

2

또한 Berkeley DB보고 할 수 있습니다 : 여기에 큰 에 대한 SQLite는 잠금을 읽을 수 있습니다. Berkeley DB 용 SQL API은 SQLite와 호환되지만 독점적 인 데이터베이스 쓰기 잠금이 필요하지 않으므로 훨씬 더 높은 동시성을 제공합니다. API는 SQLite와 호환되므로 Berkeley DB 라이브러리에 대해 응용 프로그램을 다시 작성하는 쉬운 테스트입니다.

관련 문제