Плюсы и минусы SQLite и общих настроек

Каков хороший механизм хранения информации из базы данных SQLite и общих настроек?

Зачем использовать общие настройки? Зачем использовать sqlite? Я попытался найти разницу между ними и который является лучшим механизмом для хранения данных, но я не могу найти соответствующий ответ в Google. Пожалуйста, помогите мне с примерами и пояснениями.

Solutions Collecting From Web of "Плюсы и минусы SQLite и общих настроек"

Это зависит от данных, которые вы хотите сохранить.

SQLite

Большие количества одинаковых структурированных данных должны храниться в базе данных SQLite, поскольку базы данных предназначены для такого рода данных. Поскольку данные структурированы и управляются базой данных, можно запросить получение подмножества данных, соответствующих определенным критериям, с использованием языка запросов, такого как SQL. Это позволяет выполнять поиск в данных. Разумеется, управление и поиск больших наборов данных влияет на производительность, поэтому чтение данных из базы данных может быть медленнее, чем чтение данных из SharedPreferences.

SharedPreferences

SharedPreferences – это хранилище ключей / значений, в котором вы можете сохранять данные под определенным ключом. Чтобы прочитать данные из магазина, вам нужно знать ключ данных. Это делает чтение данных очень легким. Но так же просто, как хранить небольшой объем данных, так сложно хранить и читать большие структурированные данные, так как вам нужно определить ключ для каждого отдельного файла, кроме того, вы не можете выполнять поиск по данным, за исключением того, что у вас есть определенная концепция для Именования ключей.

Этот вопрос имеет принятый ответ, но я думаю, что есть еще что сказать по теме – относительно скорости.

SharedPreferences и Sqlite DB приложения являются как просто файлами, хранящимися в каталогах приложения в файловой системе устройства. Если объем данных не слишком велик, опция Sqlite будет включать в себя более крупный и более сложный файл с большей нагрузкой на обработку для простого доступа.

Итак, если характер данных не диктует ваш выбор (как объясняется в принятом ответе), а скорость имеет значение, то, вероятно, лучше использовать SharedPreferences.

И чтение некоторых данных часто находится на критическом пути к отображению основной активности, поэтому я считаю, что скорость часто очень важна.

Одна из последних соображений относительно скорости и эффективности – если вам нужно использовать базу данных Sqlite для некоторых структурированных данных, то, вероятно, более эффективно также сохранять пользовательские настройки в базе данных, чтобы вы не открывали второй файл. Это довольно небольшое соображение – вероятно, стоит учитывать, только если вам нужно получить доступ к структурированным данным и настройкам, прежде чем вы сможете отобразить основное действие.

Я считаю, что речь идет не о скорости или размере, а о том, какие операции вы хотите делать с вашими данными.

Если вы планируете выполнять группировку , сортировку и другие операции с БД на своих данных, переходите к Sqlite . Например, сортировка данных по дате.

Если вы хотите сопоставить простые значения (например, int, boolean, String), используйте Preferences . Операции с БД здесь не сработают, и, разумеется, вам нужно иметь все ключи. Примером может служить пользовательский пароль или конфигурация приложения.

Большим соблазном принять предпочтения является то, когда вы хотите использовать его для хранения сплющенного POJO (сериализованного объекта JSON) в качестве String. Наличие такой потребности в действительности является признаком использования Sqlite. Зачем ? Потому что сложные данные в конечном итоге потребуют сложных отпечатков. Представьте, что вы выбрали конкретную запись, которую можно было бы обработать простым «SELECT … WHERE id = 1». В пути Preferences это будет длительный процесс от десериализации до повторения результатов.

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

  • С другой стороны, для хранения небольшого количества данных перейдите к Shared Preferences. В этом случае огромная система баз данных не нужна. Это позволит пользователю просто сохранять данные и загружать их.

Забудьте SQLLite забудьте SharedPreferences, используйте Realm. Единственное решение для всего вашего локального хранилища. Вы можете использовать простые старые объекты Java как RealmObjects и хранить там свои данные. Вы можете конвертировать selcted запросы в файлы JSON. Не нужно разбирать всю базу данных. Проверьте эту ссылку: https://realm.io/news/introducing-realm/