2009-04-20 8 views
11

Quels sont les avantages de l'utilisation du type de données "xml" par rapport au stockage du contenu xml dans un type de données "texte"? Est-ce que je peux interroger par un attribut ou un élément xml spécifique?Postgres XML datatype

Qu'en est-il de l'indexation et des performances de requête? En plus du manuel postgresql, à quelles autres sources en ligne pouvez-vous me désigner?

Répondre

9

d'une manière générale, les avantages sont les mêmes que pour tout autre type de données et pourquoi vous avez des types de données autres que le texte du tout:

  • Intégrité des données
    Vous ne pouvez stocker des valeurs XML valides (bien, bien formées) que dans des colonnes de type xml.
  • Type de sécurité
    Vous ne pouvez effectuer des opérations que sur des valeurs XML significatives pour XML.

Un exemple est la fonction xpath() (XML Path Language), qui ne fonctionne que sur des valeurs de type XML, pas de texte.

Les caractéristiques de performance d'indexation et de requête ne sont pas meilleures ou pires que pour le type de texte pour le moment.

14

À l'heure actuelle, la plus grande chose que vous obtenez des champs XML par rapport au texte brut est XPath. Donc, si vous aviez quelque chose de similaire à

CREATE TABLE pages (id int, html xml); 

vous pouvez obtenir le titre de la page 4 par

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

En ce moment, le support XML est assez limité, mais nous avons eu beaucoup mieux en 8.3, docs en cours sont à link text