Avantages et inconvénients des préférences SQLite et partagées

Quel est le bon mécanisme pour stocker des informations dans la firebase database SQLite et les préférences partagées?

Pourquoi utiliser les préférences partagées? Pourquoi utiliser sqlite? J’ai essayé de trouver la différence entre eux et quel est le meilleur mécanisme de stockage des données, mais je ne parviens pas à trouver la réponse appropriée sur Google. S’il vous plaît, aidez-moi avec des exemples et des explications.

    Cela dépend vraiment des données que vous souhaitez stocker.

    SQLite

    De grandes quantités de mêmes données structurées doivent être stockées dans une firebase database SQLite, car les bases de données sont conçues pour ce type de données. Comme les données sont structurées et gérées par la firebase database, on peut interroger un sous-dataset correspondant à certains critères en utilisant un langage de requête tel que SQL. Cela permet de rechercher dans les données. Bien entendu, la gestion et la recherche de grands ensembles de données influent sur les performances. Par conséquent, la lecture des données d’une firebase database peut être plus lente que la lecture de données à partir de SharedPreferences.

    Des préférences partagées

    SharedPreferences est un magasin de clés / valeurs dans lequel vous pouvez enregistrer des données sous certaines clés. Pour lire les données du magasin, vous devez connaître la clé des données. Cela rend la lecture des données très facile. Mais, aussi facile que de stocker une petite quantité de données, il est difficile de stocker et de lire des données structurées volumineuses, car vous devez définir des clés pour chaque donnée. De plus, vous ne pouvez pas vraiment rechercher dans les données. nommer les clés.

    Cette question a une réponse acceptée, mais je pense qu’il y a plus à dire sur le sujet – en ce qui concerne la vitesse.

    Les SharedPreferences et Sqlite DB d’une application ne sont que des fichiers, stockés dans les répertoires de l’application sur le système de fichiers du périphérique. Si la quantité de données n’est pas trop grande, l’option Sqlite impliquera un fichier plus volumineux et plus compliqué avec un traitement supplémentaire pour un access simple.

    Donc, si la nature des données ne dicte pas votre choix (comme expliqué dans la réponse acceptée), et que la rapidité est importante, alors il est probablement préférable d’utiliser les préférences partagées.

    Et lire certaines données est souvent sur le chemin critique pour afficher l’activité principale, donc je pense que la vitesse est souvent très importante.

    Une dernière reflection concernant la rapidité et l’efficacité: si vous devez utiliser une firebase database Sqlite pour certaines données structurées, il est probablement plus efficace de stocker les préférences de l’utilisateur dans la firebase database afin de ne pas ouvrir un second fichier. Ceci est une considération assez mineure – cela vaut probablement la peine d’être pris en considération uniquement si vous devez accéder aux données structurées et aux préférences avant de pouvoir afficher l’activité principale.

    Ce que je veux dire, ce n’est pas la vitesse ou la taille, mais le type d’opération que vous voulez faire avec vos données.

    Si vous prévoyez de joindre , sortinger et d’autres opérations de firebase database sur vos données, optez pour Sqlite . Un exemple est le sorting des données par date.

    Si vous souhaitez mapper des valeurs simples (telles que int, boolean, Ssortingng), utilisez les préférences . Les opérations sur firebase database ne fonctionneront pas ici et il va sans dire que vous devez avoir toutes les clés. Un exemple est le mot de passe utilisateur ou la configuration de l’application.

    La grande tentation d’utiliser Préférences est lorsque vous souhaitez l’utiliser pour stocker un object POJO aplati (un object JSON sérialisé) sous forme de chaîne. Avoir un tel besoin est en fait le signe d’utiliser Sqlite. Pourquoi ? Parce que des données complexes nécessiteront éventuellement des opérations complexes. Imaginez récupérer une entrée spécifique qui pourrait être traitée par un simple “SELECT … WHERE id = 1”. Dans le chemin Préférences, il s’agira d’un long processus, depuis la désérialisation jusqu’à l’itération des résultats.

    • Pour stocker une grande quantité de données, optez pour le système de firebase database SQLite. Cela permettra à l’utilisateur de rechercher également des données.

    • D’autre part, pour stocker une petite quantité de données, optez pour les préférences partagées. Dans ce cas, un système de firebase database énorme est inutile. Cela permettra à l’utilisateur de simplement enregistrer les données et de les charger.

    Oubliez SQLLite oubliez les préférences partagées, utilisez le domaine. Une solution unique pour tout votre stockage local. Vous pouvez utiliser les anciens objects Java simples comme RealmObjects et y stocker vos données. Vous pouvez convertir des requêtes sélectionnées en fichiers JSON. Pas besoin d’parsingr la totalité de la firebase database. Consultez ce lien: https://realm.io/news/introducing-realm/