postgresql datatype für html?

Allgemeines zu PostgreSQL.
Antworten
cagksw
Neuer Benutzer
Beiträge: 12
Registriert: Do 28. Jun 2018, 14:20

postgresql datatype für html?

Beitrag von cagksw » Fr 13. Jul 2018, 09:21

Grüße Euch!

Ich wollte euch um Eure Erfahrungen/Meinungen zu folgendem Szenario bitten:

Nehmen wir an, ich würde gerne HTML aus einem Rich-TextEditor einer Applikation in einem PostgreSQL-Table ablegen..

Was wäre der geeignete Datentyp, gibt es interne Funktionen die dabei genutzt werden sollten (zB. zum Escapen von gewissen Zeichen, etc.) bzw. was ist generell 'Best Practice' beim Ablegen von HTML in PostgreSQL?

Danke & Grüße an alle hier im Forum,

Christoph

akretschmer
Erfahrener Benutzer
Beiträge: 7429
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: postgresql datatype für html?

Beitrag von akretschmer » Fr 13. Jul 2018, 09:26

Pfff...

da gibt es keinen direkten Datentyp dafür, daß würde als TEXT oder BYTEA wohl durchgehen. PG würde größere Brocken dann allerdings automatisch beim speichern komprimieren.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

cagksw
Neuer Benutzer
Beiträge: 12
Registriert: Do 28. Jun 2018, 14:20

Re: postgresql datatype für html?

Beitrag von cagksw » Fr 13. Jul 2018, 09:33

Danke für die Info, ich werde mich mal ein wenig in meiner Sandbox austoben und die Performance der zwei Varianten vergleichen ;)

akretschmer
Erfahrener Benutzer
Beiträge: 7429
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: postgresql datatype für html?

Beitrag von akretschmer » Fr 13. Jul 2018, 11:01

vermutlich wird der Unterschied nicht groß sein, aber es wäre schön, wenn Du berichtest, was Du da erlebst ;-)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

cagksw
Neuer Benutzer
Beiträge: 12
Registriert: Do 28. Jun 2018, 14:20

Re: postgresql datatype für html?

Beitrag von cagksw » Fr 13. Jul 2018, 12:31

Grüß Dich nochmals!

Hier die Resultate:

Tables:

CREATE TABLE testbytea (id INT, data BYTEA);
CREATE TABLE testtext (id INT, data TEXT);

Daten:

Zufällige Zeichenfolge mit 1000 Zeichen

SELECT-Test: (1 x insert & N x select)

Die Leistung für den TEXT- Datentyp ist ca. um 15% besser als die des ByteA- Datentyps.
Der Overhead zum Lesen von base64-codierten Daten ist etwa 10% besser als der beim Lesen der Binärdaten des ByteA-Datentyps.

INSERT-Test: (N x insert -> Ausführungszeit )

Auf den ersten Blick zeigen die Resultate beim INSERT der verschiedenen Datentypen keinen wirklichen Unterschied, aber wenn man ins Detail schaut, gibt es einen sehr kleinen Unterschied und die Verwendung von TEXT ist nur geringfügig schneller als die Verwendung von ByteA.

Fazit:

Der Wechsel von ByteA zu TEXT führt zu einer sofortigen Leistungsverbesserung für Leseabfragen - Das ist ein großer Gewinn, da kein Anwendungscode geändert werden muss. Die Schreibleistung wird sich dadurch jedoch nicht merklich ändern.

Sogar der Wechsel von ByteA zu codierten Daten (wie Base64) verbessert die Leseleistung.
Dieser Ansatz kann in Betracht gezogen werden, wenn binäre Daten in der Datenbank gespeichert werden sollen.

Beste Grüße, Christoph

castorp
Erfahrener Benutzer
Beiträge: 1034
Registriert: Sa 27. Jun 2009, 22:24

Re: postgresql datatype für html?

Beitrag von castorp » Fr 13. Jul 2018, 17:07

bytea ist für Binärdaten. HTML ist Text und deswegen sollte das auch in einer text Spalte gespeichert werden. Allein schon deswegen damit man das in einem SQL Client anständig ansehen kann. Ausserdem verliert man mit bytea praktisch alle Möglichkeiten Teile des Textes zu manipulieren oder zu durchsuchen.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

akretschmer
Erfahrener Benutzer
Beiträge: 7429
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: postgresql datatype für html?

Beitrag von akretschmer » Fr 13. Jul 2018, 17:22

ACK @castop.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

cagksw
Neuer Benutzer
Beiträge: 12
Registriert: Do 28. Jun 2018, 14:20

Re: postgresql datatype für html?

Beitrag von cagksw » Mo 16. Jul 2018, 16:13

@castop: Danke für Deine Info, habe für meine Geschichte BYTEA für den Datei-Upload genommen und speichere das HTML mit dem Typ TEXT :)

Antworten