0

如果列包含压缩的 XML,是否可以使用 db2 表的内容对列进行查询?

如果是这样,一个简单的例子是什么?

也就是说,给定一个表:

| id | zipped_content
| 0  | some zipped content here that was once xml

压缩内容可能如下所示:

<animals>
    <cat>
        <name>fluffy</name>
        <age>12</age>
    <cat>  
    <dog>
        <name>snoopy</name>
        <age>32</age>
    <dog>
</animals>

我可以运行一个查询,对于给定的 id,从 zipped_content 中提取某些数据吗?

也就是说,只得到每只动物的名字和年龄?这对 xml db2 的东西有点棘手——但大概你明白我的意思。我可以解压缩然后使用表格的东西,还是那不可能?

4

1 回答 1

0

你可以,但性能绝对会扼杀你的应用程序。您不能真正在压缩 XML 的结构上使用索引。此外,解压缩需要临时内存空间,您还需要考虑缓存。

为什么要压缩 XML?老实说,我能想到的正当理由很少。

如果要通过某些 REST API 或类似方式进行传输,只需确保您的 Web 服务器将使用 deflate 或 gzip,您将在不损失太多性能的情况下实现压缩。

如果您希望节省空间,只需让DB2为您压缩表。

如果有其他一些奇怪的要求,请同时存储压缩和解压缩的版本。当另一个发生变化时,使用触发器来更新另一个。

如果您真的想检查并使用压缩字段,您可能应该结合存储过程和 SQL 查询来完成。您可能希望开发一个压缩/解压缩过程并将其与使用临时表相结合,或者开发一个过程来完全处理您的查询 - 或两者兼而有之。是的,需要 C/C++/Java 开发。

于 2013-02-12T18:14:38.390 回答