2009-04-20 25 views
11

¿Cuáles son los beneficios de usar el tipo de datos "xml" versus el almacenamiento del contenido xml dentro de un tipo de datos "text"?Postgres XML datatype

¿Puedo consultar por algún atributo o elemento específico de xml?

¿Qué ocurre con la indexación y el rendimiento de las consultas?

Además del manual postgresql, ¿a qué otras fuentes en línea me puede dirigir?

Respuesta

9

en términos generales, los beneficios son los mismos que para cualquier otro tipo de datos y por qué tiene los tipos de datos que no sean de texto en absoluto:

  • Integridad de datos
    Solo puede almacenar valores XML válidos (bien, bien formados) en columnas de tipo xml.
  • Tipo seguridad
    Solo puede realizar operaciones en valores XML que tengan sentido para XML.

Un ejemplo es el xpath() función (XML Path Language), que sólo opera en los valores de tipo XML, no texto.

Las características de rendimiento de indexación y consulta no son mejores o peores que, por ejemplo, el tipo de texto en este momento.

14

En este momento lo más importante que se obtiene de los campos XML sobre el texto sin formato es XPath. Así que si había algo similar a

CREATE TABLE pages (id int, html xml); 

usted podría conseguir el título de la página 4 por

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

Ahora mismo soporte XML es bastante limitado, pero ahora mucho mejor en 8.3, documentos actuales se encuentran en link text