sqlite 데이터베이스에 약 500 개의 레코드를 삽입하려고하는데 너무 길다. 아무도 이것을 최적화하는 방법을 알려주십시오.데이터베이스 삽입에 너무 많은 시간이 걸린다. ios sqlite
for (int i = 0 ; i< [[[dic objectForKey:@"response" ]objectForKey:@"requete"]count]; i++) {
[sqlManager executeQuery:[[[dic objectForKey:@"response"]objectForKey:@"requetes"]objectAtIndex:i]];
}
는
-(void)executeQuery:(NSString*)_query
{
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
if(sqlite3_exec(database, [_query UTF8String],NULL, NULL, NULL) == SQLITE_OK){
//NSLog(@"Query Success");
}
else{
// NSLog(@"Query Failed");
}
sqlite3_close(database);
}
sqlite3_close(database);
}
한 번만 엽니 다. 그런 다음 여러 번 삽입하는 경우 트랜잭션을 시작하십시오. –
FMDB https://github.com/ccgus/fmdb를 사용하면 롤백에 대한 걱정없이 트랜잭션을 사용할 수 있습니다. – amar
** 모든 작업 **을 열거 나 닫을 필요가 없습니다 **. SQLite는 DB가 열린 상태에서 앱이 다운되면 데이터를 보존한다는 측면에서 매우 강력합니다. 트랜잭션을 시작하지 않는 한 각 연산 후에 암시 적으로 발생하는 "커밋"을 완료하면 데이터가 디스크에 기록됩니다. –