Выбор ответа Middle Офлайн и хранение обновлено
Когда нужна SQLite
Вопрос
Приложение для полевых инспекторов хранит офлайн 50 000 записей и ищет по нескольким полям. Что выбрать?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: SQLite (expo-sqlite, op-sqlite) или база поверх неё вроде WatermelonDB. Для больших объёмов и запросов нужна база с индексами: поиск по полям, сортировка, частичная загрузка.
Варианты ответа
- SQLite (
expo-sqlite, op-sqlite) или база поверх неё вроде WatermelonDBправильный ответ - AsyncStorage с одним большим JSON, его проще всего обновлять целиком
- MMKV с отдельным ключом на каждую запись и фильтрацией в JS
- Хранить всё в Redux и сохранять стор на диск целиком после каждого изменения
Разбор
Для больших объёмов и запросов нужна база с индексами: поиск по полям, сортировка, частичная загрузка. Большой JSON в AsyncStorage читается и пишется целиком. Перебор 50 000 ключей в JS медленный и занимает память. Сохранение огромного стора целиком на каждое изменение тормозит.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.