2009-04-20 6 views
11

Was sind die Vorteile der Verwendung des "xml" -Datentyps im Vergleich zum Speichern des XML-Inhalts in einem "Text" -Datentyp?Postgres-XML-Datentyp

Kann ich nach einem bestimmten XML-Attribut oder Element suchen?

Wie steht es mit der Indizierung und der Abfrageleistung?

Neben dem Postgresql-Handbuch, auf was andere Online-Quellen können Sie mich verweisen?

Antwort

9

im Allgemeinen sind die Vorteile die gleichen wie für alle anderen Datentypen und warum Sie Datentypen außer Text überhaupt:

  • Datenintegrität
    Sie können nur gültige (gut, wohlgeformte) XML-Werte in Spalten vom Typ XML speichern.
  • Typ Sicherheit
    Sie können nur Operationen für XML-Werte ausführen, die für XML sinnvoll sind.

Ein Beispiel ist die Funktion xpath() (XML Path Language), die nur auf Werten vom Typ XML arbeitet, nicht Text.

Indizierung und Abfrage Leistungsmerkmale sind nicht besser oder schlechter als zum Beispiel die Textart im Moment.

14

Im Moment ist das größte, was Sie aus XML-Feldern über Rohtext erhalten, XPath. Also, wenn Sie etwas Ähnliches wie

CREATE TABLE pages (id int, html xml); 

hatte, konnte man den Titel der Seite 4 von

SELECT xpath('/html/head/title/text()', html) FROM pages WHERE id = 4; 

erhalten Gerade jetzt XML-Unterstützung recht begrenzt ist, aber viel besser geworden in 8.3 sind die aktuellen docs an link text