是否更有意义(服务器端验证
XML / schema / dtd除外)以XML类型而不是text / varchar / ntext存储XML?我不打算在数据库端执行任何XML操作.
我调查的目的是减少数据库大小.为了这个目的,我可以使用XML data type作为无类型的XML吗?优缺点都有什么?
我发现一个article related to the topic,但我不知道作者的假设/结论是否正确.
解决方法
如果将xml存储在xml类型的列中,则数据将不会像简单文本那样存储,如在nvarchar的情况下,它将被存储在某种解析的数据树中,而数据树反过来将小于未解析的xml版本.这不仅减少了数据库大小,还给出了其他优点,如验证,轻松操作等(即使您没有使用任何这些,仍然在将来使用).
另一方面,服务器必须在插入时解析数据,这可能会减慢数据库的速度 – 您必须做出速度与大小的决定.
编辑:
就个人而言,我认为数据库中的数据应该只存储在xml中,因为它的结构很难在关系模型中实现,例如布局,样式描述等.通常这意味着不会有太多的数据和速度不是问题,因此添加了xml的功能,如数据验证和操作能力(最后也是最重要的)点击该值的能力在管理工作室,看到格式化的xml – 我真的很喜欢这个功能!),超重的成本.
我没有在数据库中存储大量xml的直接经验,如果我有选择,我不会这样做,因为关系模型几乎总是比较慢,但如果是这样,我’ d建议对两个选项进行分析,并选择最适合您需求的大小和速度.