JSON файл VS SQLite для Android - PullRequest
18 голосов
/ 28 декабря 2011

Я разработаю приложение для Android с большим количеством данных (файлы json с несколькими строками и CSV для графических данных с большим количеством строк), эти данные меняются каждые 5 минут и заменяют все предыдущие данные (или в основном).

Каковы наилучшие подходы к разработке этого?У меня есть 2 варианта:

  • Сохранить все данные в sqlite db и синхронизировать это с помощью IntentService.

  • сохранить данные в jsonи CSV-файлы и заменить его каждые 5 минут.

Какой подход даст наилучшую производительность?Это с учетом времени на анализ файлов, сортировки данных, времени загрузки и согласованности данных.

любые другие идеи?

PD: Мне тоже нужна система кеширования, на случай, если янет интернета и мне нужны предыдущие сохраненные данные

Ответы [ 5 ]

13 голосов
/ 28 декабря 2011

Sqlite в основном используется, когда вы хотите, чтобы данные были сохранены и использованы в будущем.В вашем случае данные меняются каждые 5 minutes, поэтому лучше иметь JSON, потому что каждый раз, чтобы сделать Database connection store и retrieve после 5 minutes, потребуется некоторое время.

ОБНОВЛЕНИЕ:

У меня также было то же приложение, в котором данные менялись каждый раз.В этом случае я использовал Map<K, V> и ArrayList для сохранения значений, потому что, поскольку данные меняются каждый раз, я думаю, что невозможно хранить данные в Sqlite каждый раз.Требуется много времени для хранения, подключения, извлечения и обновления данных в Sqlite.

11 голосов
/ 03 июля 2014

Преимущества SQLite:

  • Изменения кислотные
  • Вы можете выполнять сложные запросы быстрее (например, «дать мне только поля A, B из элементов с (C / D)> E»)
  • Я бы сделал ставку более компактным для больших данных (целые числа хранятся в виде целых чисел, а не строки отдельной цифры)
  • Только один файл
  • Вы можете легко объединить старые данные с новыми данными
  • Вы можете обновлять текущие данные, даже используя их
  • Параллелизм может быть обработан

Преимущества для JSON / CSV:

  • Легче отлаживать (простой текст)
  • Быстрее сделать полное обновление (скопировать новый файл + удалить старый)

Для исходного вопроса полное удаление / замена данных делает JSON / CSV победителем.

Однако, если приложение будет извлекать частичные данные каждые 10 секунд и объединять / обновлять их с предыдущим, SQLite будет лучшим вариантом.

4 голосов
/ 15 января 2013

Я рекомендую использовать JSON или сериализацию какого-либо типа объектов, кроме случаев, когда:

  • Требуется соответствие ACID для операций записи
  • Вам необходимо составлять отчеты по данным, которые могут включать копирование данныхк внешней СУБД или
  • Вы хотите присоединиться к тем, кто замешан в злоупотреблении / злоупотреблении базами данных, как это обычно наблюдается в наши дни
0 голосов
/ 28 декабря 2011

В идеале это должно зависеть от того, нужны ли вам предыдущие данные, для сравнения их с текущими данными и так далее. Как правило, я использую SQLite, когда вам нужно, чтобы данные были сохранены и извлечены на более позднем этапе. В случае, если данные предназначены только для отображения, я бы предпочел хранить их в памяти программ. Имейте в виду, это не связано с файловой операцией.

0 голосов
/ 28 декабря 2011

Назначение JSON и SQLite полностью отличается друг от друга

  • JSON = используется для отправки и получения данных между сервером и клиентом.
  • SQLite = используется для хранения данных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...