2011-02-05 2 views
11

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

ответ

26

Off верхней части моей головы:

SharedPreferences:

Pro:

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

Con:

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

SQLite:

Pro:

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

Con:

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

, где я могу найти более подробную информацию о sharefprefs, являющейся медленный при работе с большим количеством данных и весь файл, нуждающийся в анализе доступа к данным? Я думаю, что мы сталкиваемся с этой проблемой, и я пытаюсь понять, как работает система (планирование перехода на SQLite). –