Файл JSON VS SQLite android
Я разработаю приложение для Android с большим количеством данных (json файлы с некоторыми строками и CSV для графических данных с большим количеством строк), эти данные меняются каждые 5 минут и заменяют все предыдущие данные (или в основном).
Каковы наилучшие подходы к его разработке? У меня есть 2 варианта:
Какой подход будет наилучшим?
Это учитывает время для разбора файлов, сортировки данных, времени загрузки и согласованности данных.
любые другие идеи?
PD: мне также нужна система кэширования, если у меня нет интернета, и мне нужны предыдущие сохраненные данные.
Ответы
Ответ 1
Sqlite
в основном используется, когда вы хотите сохранить и использовать данные в будущем. В вашем случае данные меняют каждый 5 minutes
, поэтому лучше иметь JSON
, потому что каждый раз, чтобы сделать Database connection
store
и retrieve
после 5 minutes
, потребуется некоторое время.
UPDATE:
У меня также было такое же приложение, в котором данные менялись каждый раз. В этом случае я использовал Map<K, V>
и ArrayList
для поддержания значений, потому что, поскольку данные меняются каждый раз, я думаю, что не всегда возможно хранить данные в Sqlite каждый раз. Для выполнения хранилища DB-соединений требуется много времени, загрузка, обновление данных в Sqlite.
Ответ 2
Преимущества SQLite:
- Изменения: ACID
- Вы можете быстрее выполнять сложные запросы (например, "дайте мне только поля A, B из элементов с (C/D) > E" )
- Я бы поставил более компактный для больших данных (целые числа хранятся как целые числа вместо строки отдельной цифры)
- Только один файл
- Вы можете легко объединить старые данные с новыми данными.
- Вы можете обновлять текущие данные даже при использовании
- Concurrency можно обрабатывать
Преимущества для JSON/CSV:
- Легче отлаживать (обычный текст)
- Быстрее сделать все обновление (скопируйте новый файл + удалить старый)
Для исходного вопроса все удаление/замена данных делает победителя JSON/CSV.
Однако, если приложение должно было получить частичные данные каждые 10 секунд и объединить/обновить его с предыдущим, SQLite будет лучшим вариантом.
Ответ 3
Я рекомендую использовать JSON или некоторый тип сериализации объектов, если:
- Для операций записи требуется выполнение ACID.
- Вам необходимо сообщить данные, которые могут включать в себя копирование данных на внешнюю СУБД
или
- Вы хотите присоединиться к тем, кто причастен к чрезмерному использованию/злоупотреблению базами данных, как это обычно наблюдается сегодня.
Ответ 4
В идеале это должно зависеть от того, нужны ли вам предыдущие данные, возможно, чтобы сравнить их с текущими данными и так далее. В качестве правила большого пальца я использую SQLite, когда вам нужны данные, которые нужно сохранить и получить на более позднем этапе. Если данные предназначены только для отображения, я бы предпочел сохранить его в памяти программы. Имейте в виду, что это не связано с работой файла.
Ответ 5
Назначение JSON и SQLite полностью отличается друг от друга
- JSON = используется отправка и получение данных между сервером и клиентом.
- SQLite = используется для хранения данных.