Ich muss Fragen und Antworten in einer Datenbank speichern. Die Fragen werden ein bis zwei Sätze sein, aber die Antworten werden lang sein, mindestens ein Absatz, wahrscheinlich mehr.
Der einzige Weg, den ich derzeit kenne, ist eine SQL-Datenbank. Ich halte dies jedoch nicht für eine gute Lösung, da diese Datenbanken meines Erachtens nicht für Daten dieses Typs oder dieser Größe verwendet werden. Ist dies der richtige Weg oder gibt es einen besseren Weg, um diese Daten zu speichern? Gibt es einen besseren Weg als das Speichern von rohen Saiten?
database
database-design
gsingh2011
quelle
quelle
Antworten:
Mongodb ist großartig, aber Sie kennen sich mit SQL aus. Es ist nichts Falsches daran, lange Antworten in Feldern zu speichern. Sie können Bilder oder sogar Dateien in SQL speichern. Ich denke, die maximale Feldgröße beträgt 2 GB.
Ich bin mir fast sicher, dass diese Antwort selbst irgendwo in einem Tabellenfeld gespeichert wird.
Tausende von ihnen sind kein Problem. Auch Millionen sollten kein Thema sein. Sie können die Volltextindizierung verwenden, wenn Sie das Feld nach Schlüsselwörtern oder Ähnlichem durchsuchen. Aber ich versuche nicht zu optimieren, bis ich ein Problem sehe. Computer sind billig, Speicherplatz ist grundsätzlich kostenlos.
quelle
Es ist kein Problem, Langtext in Datenbanken (SQL oder auf andere Weise) zu speichern. So werden praktisch alle Blogeinträge (Think Wordpress), Nachrichtenartikel und Forenbeiträge (Think Phpbb) im Internet gespeichert. Ich kenne die spezifischen Details des Setups von Stack Exchange nicht, aber ich bin sicher, dass Ihre Frage auch in einer Datenbank gespeichert ist. Die meisten SQL-Datenbanken haben einen
TEXT
Feldtyp oder einen entsprechenden Typ, nur um Textdaten beliebiger Länge zu speichern. Viele haben auch Volltextsuchsysteme eingerichtet.Treffen Sie technische Entscheidungen basierend auf technischem Wissen und Verständnis, nicht auf Gefühlen.
quelle
Ja, es ist der richtige Weg. Das Speichern von Zeichenfolgen in einer SQL-Datenbank ist das, was Sie tun möchten. Eine meiner Tabellen in der Datenbank enthält mehr als einen Gig an Klartextdaten und funktioniert einwandfrei.
Wenn Sie sich Sorgen um Speicherplatz machen, denken Sie daran, dass es billig ist!
Wenn Sie sich Sorgen um die Leistung machen - keine Sorge, eine gute Datenbank kann auf so viele Daten skaliert (oder verkleinert) werden, wie Sie sie einwerfen möchten.
Das Letzte, was Sie tun möchten, ist, jetzt mit der Optimierung zu beginnen (Komprimieren von Zeichenfolgen, bevor Sie sie in die Datenbank einfügen, oder etwas Nussiges), bevor es tatsächlich zu einem Problem wird. Du gibst dir nur mehr Arbeit.
quelle
Es ist kein Problem, große Zeichenfolgen oder Binärdaten zu speichern. Ich habe mit einer Datenbank mit mehr als einem Terabyte Binärdaten gearbeitet und sehr gut gearbeitet (postgres). Das einzig schlechte war die Sicherungszeit.
Die große Frage lautet: "Müssen Sie in diesem Text ständig suchen?"
Wenn Sie im Text nach Zeichenfolgen suchen, können Sie an eine Indexlösung denken:
quelle