2011-03-05 6 views
0

저는 새로운 Android 개발자입니다. 매일 저에게 도움이되는 모든 답변에 감사드립니다. 내 질문 : 나는 많은 천 개의 행을 가진 db를 가지기 위해 sqlite를 사용하고 싶지만 이것은 한 줄에 평균 1 초가 걸린다. 너무 느리다; my db는 매일 업데이트해야하므로이 db를 압축하여 내 응용 프로그램 (assets ou raws)의 폴더에 다운로드하고 있습니다. Android sdk에서 허용됩니까? 나는 많은 답을 찾았지만 나는 아무것도 발견하지 못했다. 감사합니다. (내 영어 실례)sqlite : db 다운로드

답변

1

use transactions에 대한 해결책은 다음과 같습니다. SQLite에 "BEGIN TRANSACTION"이라고 말한 다음 모든 INSERT을 실행하고 "COMMIT TRANSACTION"라고 말하십시오. 트랜잭션이 이미 시작되지 않으면 SQLite는 별도의 트랜잭션 (소위 자동 커밋) 내의 모든 쿼리를 실행하고 각 INSERT에 대해 "COMMIT TRANSACTION" internall을 수행하는 것이 매우 느리기 때문에 훨씬 빠릅니다.

0

안드로이드 부분에 대한 아이디어는 없지만 1 초를 찍은 삽입은 비정상입니다. 많은 수의 행을 삽입하려는 경우 트랜잭션에서 수행하십시오.

begin transaction; 
insert into mytable values (...); 
.... 
commit; 

이것은 단지 한 번에 삽입을 한 것보다훨씬 더 빨리 될 것입니다.

+0

감사합니다. 나는 이것을 테스트 할 것입니다! –

관련 문제