안녕하세요. 내 앱이 정말 붙어 있습니다. SQLite3을 사용하여 aprox 250.000 행 (50MB)을 사용하여 내 테이블에서 간단한 SELECT를 작성해야합니다. Iphone Simulator로로드하면 쿼리에 3 초가 걸립니다. 기기에서 내 앱을 테스트 할 때 검색어에 90 초가 걸립니다. 불행히도 90 초의 기다림으로 앱을 출시 할 수 없습니다. 여기에 내 코드를 게시 :Iphone Sqlite3 쿼리가 너무 느리다
-(void) loadResults {
sqlite3 *database;
NSMutableString *street;
zone = [[NSMutableArray alloc] init];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
const char *sqlStatement = [[NSString stringWithFormat:@"select street from streets "] UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
street = [NSMutableString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
[zone addObject:street];
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);}
이 더 WHERE 문이 당신이 볼 수 있듯이 내가 sqlite3를
CREATE TABLE streets (id INTEGER PRIMARY KEY, street TEXT, province TEXT, country TEXT, from TEXT, to TEXT, lat TEXT, lon TEXT);
CREATE INDEX strIndx on streets(street);
를 사용하여 내 테이블을 만들어 한 방법이다, 그것은 단지 간단 "로부터 거리를 선택 거리 "
여기에서 도움이 필요하십니까 미리 감사드립니다.
SQL 최적화가 진행되는 한 전혀 모르지만 기본적으로 별개의 문제입니다. –