SQLite или SharedPreferences для постоянного хранения данных?

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

Ответ 1

Сверху моей головы:

SharedPreferences:

Pro:

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

Con:

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

SQLite:

Pro:

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

Con:

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