PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : postgresql: was ist schneller, blob oder eigene tabelle?



supersucker
08.03.2005, 01:49
hi zusammen,

beschäftige mich gerade mit folgendem problem:

hab ne relativ grosse postgresql-datenbank die strukturinformationen von proteinen enthält.
eine dieser strukturinformationen ist die sekundärstruktur eines proteins, die man sich einfach als sehr langen string bestehend aus floats und chars vorstellen kann.
dieser lange string beschreibt nun die sekundärstruktur jedes einzelnen bestandteiles (i.A. Aminosäuren) des jeweiligen proteines.

nun stehe ich vor der wahl, speichere ich diesen wie schon gesagt sehr langen string als blob in der datenbank (also sozusagen die gesamte sekundärstruktur für alle bestandteile des proteins) oder mache ich dafür eine eigene tabelle auf die jeweils die einzelnen sekundärstrukturen für die einzelnen bestandteile des proteins als record enthält?

mit anderen worten, wofür dauert der lookup in der datenbank länger, für den blob (den ich bei jeder anfrage neu zerlegen müsste) oder für die eigene tabelle (die auch recht gross wird)?
und wie sieht das mit dem platzbedarf aus? wäre eine eigene tabelle sehr viel grösser als eben ein blob?

die frage ist für mich auch interessant weil ich mit blobs noch nie was gemacht habe, und ich mich eigentlich nur ungern mit einzelnen bytes rumschlagen möchte, blobs also eigentlich vermeiden möchte solange das nicht wirklich einen signifikanten platz und zeit-gewinn bringt.........

hoffe mal ich bin nicht zu sehr ins biologische detail gegangen.....:-)

thx im voraus...........

etuli
08.03.2005, 02:02
[ ] deine Applikation ist Zeitkritisch
[ ] deine Applikation ist Speicherkritisch

Abhaengig von deiner Struktur wuerde es viel mehr Speicher brauchen es in einer eigenen Tabelle zu speichern. Das Suchen von Eintraegen ist aber wesentlich fixer. Problematisch wird es, wenn du bei Proteinen die Lokalitaet ins Spiel kommt. Solltest du viele Infos benoetigen die du zuvor aus einem einzelnen Blob geladen hast benoetigen, so muesstest du diese in einem Rutsch aus der DB ziehen. Hier muesstest du austesten, was schneller ist.