Здравствуйте, я действительно застрял с моим приложением. Мне нужно сделать простой SELECT для одной из моих таблиц с приблизительно 250 000 строк (50 МБ), используя SQLITE3. Когда я загружаюсь с помощью Iphone Simulator, запрос занимает около 3 секунд. Когда я тестирую свое приложение на устройстве, запрос занимает 90 секунд. К сожалению, я не могу выпустить свое приложение за 90 секунд ожидания. Здесь я публикую свой код:
-(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);}
Вот как я создал свою таблицу, используя 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);
Как видите, оператора WHERE нет, это просто "ВЫБРАТЬ улицу из улиц"
Пожалуйста, мне нужна помощь здесь
Заранее спасибо.