2016-03-24 2 views
-1

Ich werde einige schwere Arbeit mit Serialisierung von Objekten in Zeichenfolge speichern und speichern in einer DB. Jedes Objekt hat ungefähr 100 Zeichen und alle Objekte werden in einem einzelnen Zeilenfeld gespeichert. Die Sache ist manchmal, ich möchte Teilstrings erhalten oder die Daten teilen und ein Stück an bestimmten Orten oder anderen Manipulationen erhalten. Sollte dies in MySQL oder vom Java-Programm getan werden ?.String Serialisierung in MySQL db oder in Java-Programm

Auch gibt es eine Möglichkeit, meine Abfragen funktionell zu optimieren, da die erwartete Größe der Felder etwa VARCHAR 20k sein wird.

+0

Wenn Sie mySQL verwenden wollten, könnten Sie etwas an das Ende jedes Elements anhängen, um als Trennzeichen zu fungieren (ich benutze gerne "//") und dann die Zeichenkette in ihre Teile innerhalb von Java aufteilen und die Elemente in einem speichern Anordnungsliste. – Joris

+0

@Joris Das mache ich. Ich spreche zum Beispiel über was wäre schneller, wenn ich 100 Elemente mit Trennzeichen habe und ich möchte von Element 72 - 108 oder Zeichenfolge an Element 48 einfügen. Ist dies schneller, um alle Felder aus der DB zu bekommen und sie manipulieren das Programm oder verwenden MySQL String Manipulationsmethoden? – MartinStone

+1

Es wäre schneller, jedes Element in einer eigenen Zeile mit einem eindeutigen Schlüssel eines inkrementierten int zu speichern und einfach die mySQL-Anweisung zu verwenden 'select textValue from exampleTable wobei key> 71 && key <109' Ich denke, Sie können' && 'verwenden aber das ist die allgemeine Idee – Joris

Antwort

0

Wenn Sie die Java-Serialisierung verwenden, lautet die Ausgabe opaque, dh Sie können nicht in die serialisierten Daten hineinschauen und Bits und Teile extrahieren, ohne sie erneut in eine Java JVM zu laden.

Wenn Sie in SQL mit den Daten etwas tun wollen, dann muss es in der Datenbank in seiner primitiven (d. H. Unserialisierten) Form gespeichert werden.

+0

Ich verwende keine Java-Serialisierung, ich verwende eine String-basierte Serialisierungsmethode, die ich implementiert habe, um die Objekte getrennt durch ein Trennzeichen zu speichern – MartinStone