代码之家  ›  专栏  ›  技术社区  ›  user16120

Postgres XML数据类型

  •  11
  • user16120  · 技术社区  · 17 年前

    与将XML内容存储在“文本”数据类型中相比,使用“XML”数据类型有什么好处?

    我是否能够通过特定的XML属性或元素进行查询?

    索引和查询性能如何?

    除了《PostgreSQL手册》,你还能给我指出哪些在线资源?

    2 回复  |  直到 17 年前
        1
  •  10
  •   Basil Bourque    12 年前

    一般来说,这些好处与其他任何数据类型都是一样的,以及为什么您的数据类型完全不是文本:

    • 数据完整性
      只能在XML类型的列中存储有效(格式良好)的XML值。
    • 类型安全
      只能对XML值执行对XML有意义的操作。

    一个例子是 xpath() 功能( XML Path Language ,它只对xml类型的值(而不是文本)进行操作。

    索引和查询性能特征并不比当前的文本类型更好或更差。

        2
  •  15
  •   Jeff Mc    17 年前

    现在,通过原始文本从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中得到了更好的支持,当前的文档 link text