3

我对系统性能有疑问。在 DB 表中,每条记录都会有一个很大的 XML 数据。我担心的是,如果我每次都应该从数据库中解析 XML 数据以获取 XML 中的属性和信息。另一种选择可能是解析 XML 一次并捕获它们。XML 大小平均为 100KB,将有 10^10 条记录。如何解决这个空间与计算性能问题?我的猜测是捕捉结果(XML 中的重要属性)。因为每次查询解析 10^10 条记录并不是一件容易的事。加上解析后的属性可以用作索引。

4

3 回答 3

1

如果您要解析所有查询,那么您无疑应该缓存结果,也许将完整生成的产品放入单个数据库字段或文件中以供将来使用,或者最后直到某些内容发生更改,就像论坛系统一样。

知道你总是会得到相同的结果,对大量数据重复一个昂贵的过程是对资源的真正浪费。

于 2013-04-17T03:23:11.980 回答
0

如果您打算使用 XML 中的某些属性进行索引,最好将它们作为列添加到表中。

关于解析 XML,100kb 几乎不是影响性能的大小。此外,您可以在获取记录时读取 XML(按原样)并将其存储在字符串中,并仅在您想要显示/使用这些附加属性时对其进行解析。

于 2013-04-17T03:16:20.313 回答
0

您没有提到最佳选择:解析 XML 并将其数据存储在它们所属的表中。如果您确实需要逐字逐句的原始 XML,请将其保留为 blob,否则请忽略它。

(顺便说一下,我认为您的意思是cache,而不是 catch 。)

于 2013-04-17T06:26:13.647 回答