Postgres XML тип данных - PullRequest
       9

Postgres XML тип данных

12 голосов
/ 20 апреля 2009

Каковы преимущества использования типа данных "xml" по сравнению с хранением содержимого xml внутри типа "текст"?

Могу ли я выполнить запрос по какому-либо определенному атрибуту или элементу xml?

А как насчет индексации и производительности запросов?

Помимо руководства postgresql, на какие другие онлайн-источники вы можете указать мне?

Ответы [ 2 ]

15 голосов
/ 20 апреля 2009

Сейчас самая большая вещь, которую вы получаете от полей XML по сравнению с необработанным текстом, это XPath. Так что если у вас было что-то похожее на

CREATE TABLE pages (id int, html xml);

заголовок страницы 4 можно получить по

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

Сейчас поддержка XML довольно ограничена, но в 8.3 она стала намного лучше, текущие документы находятся на текст ссылки

11 голосов
/ 30 апреля 2009

Вообще говоря, преимущества те же, что и для любого другого типа данных, и почему у вас вообще есть типы данных, отличные от текстовых:

  • Целостность данных
    Вы можете хранить действительные (хорошо сформированные) значения XML только в столбцах типа xml.
  • Безопасность типов
    Вы можете выполнять только те операции со значениями XML, которые имеют смысл для XML.

Одним из примеров является функция xpath() ( XML Path Language ), которая работает только со значениями типа xml, а не с текстом.

Характеристики индексации и производительности запросов не лучше и не хуже, чем, скажем, тип текста на данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...