Vor- und Nachteile von SQLite und gemeinsamen Einstellungen
Was ist der gute Mechanismus zum speichern von Daten zwischen SQLite-Datenbank und Gemeinsame Vorlieben?
Warum verwenden Sie gemeinsame Vorlieben? Warum sqlite? Ich habe versucht, den Unterschied zwischen Ihnen, und was ist der bessere Mechanismus zum speichern von Daten, aber ich bin nicht in der Lage zu finden, die angemessene Antwort auf Google. Helfen Sie mir bitte mit Beispiel und Erklärungen.
InformationsquelleAutor der Frage Rana.S | 2011-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt wirklich davon ab, die Daten, die Sie speichern möchten.
SQLite
Großen Mengen von gleich strukturierten Daten gespeichert werden sollen, in eine SQLite-Datenbank, wie die Datenbanken sind speziell für diese Art von Daten. Wie werden die Daten strukturiert und von der Datenbank verwaltet, es kann abgefragt werden, um eine Teilmenge der Daten, die die Spiele bestimmten Kriterien mit Hilfe einer Abfragesprache wie SQL. Dies macht es möglich, die Suche in den Daten. Natürlich die Verwaltung und das durchsuchen von großen Datenmengen beeinflusst die Leistung, also das Lesen von Daten aus einer Datenbank kann langsamer sein als das Lesen von Daten aus SharedPreferences.
SharedPreferences
SharedPreferences ist eine key/value-store, wo Sie sparen können Daten unter bestimmten Schlüssel. Zum Lesen der Daten aus dem Speicher müssen Sie wissen, der Schlüssel zu den Daten. Dies macht das Lesen der Daten sehr einfach. Aber so einfach, wie es ist zu speichern eine kleine Menge von Daten, wie schwierig es ist, zu Lesen und zu speichern große strukturierte Daten, wie Sie benötigen, um zu definieren, key für jedes einzelne Datenpaket, zudem man nicht wirklich mit der Suche innerhalb der Daten, außer Sie haben ein bestimmtes Konzept für die Benennung der Tasten.
InformationsquelleAutor der Antwort Flo
Diese Frage hat eine akzeptierte Antwort, aber ich denke, dass da mehr gesagt zu dem Thema - in Bezug auf Geschwindigkeit.
Einer Anwendung SharedPreferences und Sqlite-DB sind nur Dateien, gespeichert in der Anwendung die Verzeichnisse auf dem Gerät die Datei-system. Wenn die Datenmenge nicht zu groß wird, ist die Sqlite-option beinhalten eine größer und komplizierter-Datei mit mehr processing-overhead für einen einfachen Zugang.
So, wenn die Natur der Daten nicht diktieren Ihrer Wahl (wie bereits in der Antwort akzeptiert), und die Geschwindigkeit kommt, dann sind Sie wahrscheinlich besser SharedPreferences.
Und Las einige Daten oft auf dem kritischen Pfad, um die Anzeige der Haupt-activty also ich denke Geschwindigkeit ist oft sehr wichtig.
Einen letzten Gedanken in Bezug auf Geschwindigkeit und Effizienz - wenn Sie müssen, verwenden Sie eine Sqlite-Datenbank für einige strukturierte Daten, dann ist es wahrscheinlich effizienter, die auch zur Speicherung von Benutzereinstellungen in der Datenbank, so dass Sie nicht öffnen Sie eine zweite Datei. Dies ist eine ziemlich kleine überlegung - wahrscheinlich eine überlegung Wert, nur wenn Sie brauchen, um den Zugriff auf die strukturierten Daten und Einstellungen, bevor Sie die Anzeige des Haupt-Aktivität.
InformationsquelleAutor der Antwort Tom
Meine Meinung ist, es ist nicht die Geschwindigkeit oder Größe, sondern die Art der operation, die Sie tun möchten, auf Ihre Daten.
Wenn Sie planen, zu tun joinArtund andere DB-Operationen auf Ihre Daten gehen dann für Sqlite. Ein Beispiel ist die Sortierung von Daten nach Datum.
Wenn Sie möchten, anzeigen einfache Werte (z.B. int, boolean, String) verwenden Sie dann Vorlieben. DB-Operationen funktioniert hier nicht und es ist unnötig zu sagen, müssen Sie alle Schlüssel. Ein Beispiel ist die Benutzer-Passwort-oder app-Konfiguration.
Die große Versuchung, Sie zu umarmen, Vorlieben ist, wenn Sie wollen, es zu benutzen, speichern Sie eine abgeflachte POJO (ein serialisiertes JSON-Objekt) als String. Mit einer solchen Notwendigkeit ist eigentlich das Zeichen zu nutzen Sqlite. Warum ? Da komplexe Daten werden schließlich müssen komplexe oprations. Stellen Sie sich das abrufen eines bestimmten Eintrags, die gelöst werden könnten durch einen einfachen "SELECT ... WHERE id = 1". In den Einstellungen Weg, das wird ein langer Prozess sein, aus dem Deserialisieren zu überarbeiten, die Ergebnisse.
InformationsquelleAutor der Antwort inmyth
Zum speichern riesige Menge von Daten, gehen Sie für die SQLite-Datenbank-system. Diese
ermöglicht es dem Benutzer, Daten suchen, wie gut.
Auf der anderen Seite, für die Speicherung von kleinen Datenmengen, gehen Sie für Gemeinsame
Vorlieben. In diesem Fall, eine große Datenbank-system ist unnötig.
Dies wird erlauben Sie Benutzer ganz einfach speichern der Daten und laden Sie Sie.
InformationsquelleAutor der Antwort Sami Al-Jabar
Vergessen SQLLite vergessen SharedPreferences, verwenden Reich. Eine einzige Lösung für alle Ihre lokalen Speicher. Sie können die Verwendung von plain old Java Objects als RealmObjects und speichern Sie Ihre Daten dort. Sie können konvertieren eingestellter Anfragen in JSON-Dateien. Keine Notwendigkeit, um eine Analyse der gesamten Datenbank.
Überprüfen Sie diesen link:
https://realm.io/news/introducing-realm/
InformationsquelleAutor der Antwort greenspand