如果列包含压缩的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的东西有点棘手 - 但可能你得到了我的漂移。我可以解压缩然后使用表格的东西,还是不可能?
答案 0 :(得分:0)
你可以,但性能绝对会杀死你的应用程序。您无法真正在压缩XML的结构上使用索引。此外,解压缩需要临时内存空间,您还需要考虑缓存。
为什么要压缩XML?说实话,我可以想到很少有正当理由。
如果要通过某些REST API或类似工具进行传输,只需确保您的Web服务器将使用deflate或gzip,您将达到压缩而不会损失太多性能。
如果您想节省空间,只需问问DB2 to compress the table。
如果对于其他一些奇怪的要求,请同时存储拉链和解压缩版本。当另一个更改时,使用触发器更新另一个。
如果你真的想要过去并使用压缩字段,你可能应该结合使用stored procedures和SQL查询。您可能希望开发压缩/解压缩过程并将其与使用临时表组合,或者开发一个完全处理查询的过程 - 或两者的组合。是的,需要进行C / C ++ / Java开发。