Я пытаюсь использовать предварительно сгенерированный файл sqlite, содержащий 10 000 объектов в таблице.
Я создал и добавил объекты с помощью симулятора iPhone в sqlite с использованием coredata.
Я скопировал и прошёл sqlite, содержащийся в папке ресурсов iPhone Simulator (содержащей 10 000 объектов), в мою папку ресурсов в папке моего проекта.
Что я делаю при первом запуске моего приложения, это скопирую эту сгенерированную базу данных в каталог документов моего приложения на iphone, используя:
NSBundle * mainBundle = [NSBundle mainBundle];
NSString *oldPath = [mainBundle pathForResource:@"MyBase" ofType:@"sqlite"];
NSString *newPath = [[app_delegate applicationDocumentsDirectory] stringByAppendingPathComponent: @"MyBase.sqlite"];
BOOL copied = [[NSFileManager defaultManager] copyItemAtPath:oldPath toPath:newPath error:&error];
if (!copied) {
NSLog(@"Moving database from %@ to %@, error: %@", oldPath, newPath, error);
}
Работает нормально, но у меня следующая проблема:
Сравнивая доступ к исходному MyBase.sqlite (созданному на моем устройстве и заполненному теми же 10 000 объектов) с новой копией, весь доступ к таблицам занимает в 3 раза больше времени, чем к обычному сгенерированному MyBase.sqlite.
Интересно, если при создании sqlite на симуляторе индексированный атрибут не существует?
Мне нужна помощь!