SQLite или SharedPreferences для постоянного хранения данных? - PullRequest
11 голосов
/ 06 февраля 2011

Для постоянного хранения данных есть ли явное преимущество использования базы данных SQLlite по сравнению с SharedPreferences или наоборот? В настоящее время размер данных моего приложения составляет всего пару килобайт, хотя в будущем он может увеличиться в десять раз. Я не могу найти нигде, где указано, сколько хранилища доступно с помощью SharedPreferences, но мог бы предположить, что это будет одним из ограничений его использования? Есть ли разница в скорости между двумя методами? Я хочу взвесить все за и против этих двух способов хранения.

1 Ответ

26 голосов
/ 06 февраля 2011

с макушки головы:

SharedPreferences:

Pro:

  • Lightweight
  • Быстрый и простой в использовании
  • Легко отлаживать
  • Файл конфигурации может быть отредактирован вручную, если необходимо

Con:

  • Медленно при работе с большим количеством данных
  • Бесполезно, когда данные представляют собой нечто большее, чем просто ключ / значение
  • Весь файл должен быть прочитан и проанализирован для доступа к данным
  • Занимает больше места, каждая запись содержит значительный объем данных ASCII, и все данные тоже являются ASCII.

SQLite:

Pro:

  • Весы красиво
  • Изменения не требуют переписывания всего файла данных с нуля
  • Мощные запросы

Con:

  • Еще код для записи
  • Более тяжелый (код и память), избыточный при работе с небольшим количеством данных
...