2013-06-03 2 views
7

Ich arbeite an einer App, die viele Datenblöcke analysieren, verarbeiten und formatieren wird (stellare Position und Helligkeitsdaten). Eine einzelne Datennacht kann ein Dutzend Dateien enthalten, die jeweils aus mehreren hundert Zeilen bestehen. Ich habe zwei Optionen für die Speicherung und den Zugriff auf die Rohdaten: Datenbank (MySQL) oder JSON-Dateien. Dies ist alles in einer lokalen Umgebung, so dass Bandbreite und Anforderungszeiten praktisch vernachlässigbar sind - aber ich weiß nicht genug über beide Optionen, um zu sagen, welches optimal ist.Lokaler Speicher: MySQL vs. JSON?

Können Sie, die erleuchtete SO-Community, Ihr Wissen darüber teilen, ob Sie die klare Wahl haben? Ich brauche die Daten nicht wirklich zu fragmentieren, deshalb sind die relationalen Fähigkeiten von MySQL fragwürdig - ich frage mich nur, ob man schneller oder leichter ist.

(versuchte mein Bestes, das auszuweichen Tabu „was besser ist“ - wenn ich umformulieren oder klären können, lassen Sie es mich wissen!)


EDIT: Im Ernst, sind anonym schließen Stimmen nicht hilfreich . Ich würde gerne lernen, meine Fragen besser zu formulieren, um nicht die Zeit aller zu verschwenden - erzähle, was ich tun kann, um es zu ändern!

+0

Wenn Sie mit Dateien arbeiten, können Sie sie nicht einfach direkt auf Ihrem Server speichern. Auf diese Weise müssen Sie sich nicht um den Overhead aufgrund von SQL-Abfragen oder wegen des Abrufs von JSON kümmern. – ShuklaSannidhya

+0

@ShuklaSannidhya .json und .sql sind die beiden Exportoptionen für diese Daten. Selbst wenn ich Rohtextdateien hätte, müsste ich sie manuell analysieren und mögliche Ausnahmen für Datenmuster berücksichtigen - JSON wird zumindest in ein Objekt geladen. – CodeMoose

+0

Ich denke, die größte Frage ist hier "Wie werden Sie auf diese Daten zugreifen, nachdem Sie sie einmal gespeichert haben?" –

Antwort

6

Wenn Sie immer ganze Datensätze speichern und laden und keine komplexen Abfragen durchführen müssen, ist JSON wahrscheinlich die einfachere und effizientere Methode. Aber wenn Sie wirklich sicher sein wollen, sollten Sie sie benchmarken.

Es gibt auch Datenbanken mit weniger Overhead als MySQL, wie SQLite.

+0

+1 für das Lesen der ganzen Sache – CodeMoose

3

Werden Sie den ENTIRE-Datensatz konsistent laden und verwenden oder wollen Sie nur einen Teil davon?

Verwenden Sie eine Datenbank (mySql oder Sqlite oder was auch immer), wenn Sie etwas möchten, das die Datenbank Ihnen gibt, speziell in diesem Fall die Möglichkeit, Ihren Datensatz abzufragen. (Sicherheit und Normalisierung und Standardisierung haben auch gut funktioniert.)

Verwenden Sie eine Raw-Datei (csv, xml, json), wenn Sie nichts von einer Datenbank haben wollen und trotzdem den gesamten Datensatz in den Speicher laden möchten .

+0

Danke Doug! Das einzige Mal, wenn ich Daten lade, ist, den gesamten Block als Ganzes zu analysieren, also ist das Abfragen irrelevant - rate ich mit json! – CodeMoose