Выбор ответа Middle Офлайн и хранение обновлено

Когда нужна SQLite

Вопрос

Приложение для полевых инспекторов хранит офлайн 50 000 записей и ищет по нескольким полям. Что выбрать?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: SQLite (expo-sqlite, op-sqlite) или база поверх неё вроде WatermelonDB. Для больших объёмов и запросов нужна база с индексами: поиск по полям, сортировка, частичная загрузка.

Варианты ответа

  1. SQLite (expo-sqlite, op-sqlite) или база поверх неё вроде WatermelonDBправильный ответ
  2. AsyncStorage с одним большим JSON, его проще всего обновлять целиком
  3. MMKV с отдельным ключом на каждую запись и фильтрацией в JS
  4. Хранить всё в Redux и сохранять стор на диск целиком после каждого изменения

Разбор

Для больших объёмов и запросов нужна база с индексами: поиск по полям, сортировка, частичная загрузка. Большой JSON в AsyncStorage читается и пишется целиком. Перебор 50 000 ключей в JS медленный и занимает память. Сохранение огромного стора целиком на каждое изменение тормозит.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.