Я использую класс FMDB wrapper
для моего приложения iPad
. У меня есть table
, который содержит почти 10000 записей. Каждая запись имеет 140 полей. Я использую Modal class
для хранения извлекаемых значений, как,Sqlite производительность с 10000 записей в iPad
NSString *query = [NSString stringWithFormat:@"select * from table"];
FMResultSet *results = [db executeQuery:query];
while([results next]) {
ModalClass *modal = [[ModalClass alloc] init];
[modal setField1:value1];
[modal setField2:value2];
[modal setField3:value3];
[modal setField4:value4];
.
.
.
.
.
[modal setField139:value139];
[modal setField140:value140];
[array addObject:modal];
}
Я использовал некоторые варианты я знаю, performSelectorOnMainThread
, dispatch_async()
и некоторые другие многопоточные методы. Но ничто не помогло мне сделать это эффективным.
Симулятор, требуется 5 секунд. Но когда дело доходит до устройства занимает почти 20 секунд.
База данных предоставляется клиентом, поэтому я не мог изменять или изменять любые таблицы.
Может ли кто-нибудь помочь мне сделать это эффективным. Ожидание 20 секунд очень отвратительно.
Спасибо.
Что вы делаете, вставляя строки в эту таблицу? – trojanfoe
no @trojanfoe, я извлекаю из таблицы – arthankamal
И зачем вам все 10 000 строк в памяти? Вы не делаете это правильно ... – trojanfoe