Хранилище InMemory в CoreData не поддерживает индексацию?

TLDR; Может ли кто-нибудь объяснить, правильно ли предположить, что индексы не играют роли в запросах на выборку, когда используется хранилище типа InMemory?

У меня есть модель данных с несколькими объектами, и у каждого из них есть индексы для ускорения поиска. У меня есть очень большой набор данных для тестирования.

Я думал, что мои тесты были медленными из-за использования хранилища типа sqlite. Все тесты выполнялись, скажем, за интервал времени «x», когда использовалось хранилище типа sqlite.

Поэтому я изменил тип хранилища на InMemory, полагая, что это ускорит тесты. К моему удивлению, тесты теперь занимали больше времени. Все тесты выполнялись, скажем, в интервале времени 'y', когда использовалось хранилище типа памяти.

Тип хранилища: SQLITE ----> Время, затраченное на тесты «x».

Тип хранилища: InMemory ----> Время, затраченное на тесты 'y'.

Наблюдения: «y» всегда был значительно меньше, чем «x» (в моем случае почти 2 секунды разницы)

Я удивился и задумался, почему так. Я мог думать только о том, что индексы не используются в случае хранилища InMemory, что замедляет тесты по сравнению с хранилищем типа SQLite.


person Rohan Bhale    schedule 23.07.2019    source источник
comment
Любой путь воспроизведения?   -  person J. Doe    schedule 23.07.2019
comment
@J.Doe Вы можете добавить объект с двумя или тремя атрибутами и добавить к нему индекс в модели данных. У меня очень большой набор данных, и я не могу поделиться им из-за обязательств. Если вы попробуете использовать тип хранилища SQLITE, вы обнаружите, что выборка выполняется быстрее по сравнению с выборкой из хранилища InMemory. В частности, я запускаю тесты, которые часто обращаются к набору данных, и мои тесты быстрее с хранилищем SQLITE (на 2 секунды быстрее).   -  person Rohan Bhale    schedule 23.07.2019
comment
Оффтоп, но у вас есть решение для stackoverflow.com/q/58584486/7715250? Когда вы создаете контейнер в памяти, можете ли вы предварительно загрузить файл sqlite?   -  person J. Doe    schedule 30.10.2019