如果使用XSLT,您应该如何存储数据?

时间:2011-02-15 19:08:39

标签: xml storage

我最近开始学习XSLT作为模板引擎(对于PHP,如果有的话),我一直想知道:你应该如何存储数据?

  • XML - 在大小和性能方面似乎效率低下(因为存储在数据库或文件中
  • 原始数据 - 似乎咀嚼系统资源,因为需要在将其发送到XSLT引擎之前将其转换为XML。但在尺寸方面要小得多。

所以我的问题是:我应该使用什么(或者你使用的是什么 - XML,原始数据,我不知道的其他选项)?

编辑:1。在“原始数据”中,我指的是存储字符串(例如,在DB中),以防止存储整个XML文档 2.辩论是关于MVC模式中的视图,该模式应该将数据转换为HTML / RSS / JSON / XML

3 个答案:

答案 0 :(得分:1)

对于许多将XML文档存储为filestore中的文件的应用程序,可以提供足够的性能。

同样,对于某些将XML文档存储为关系数据库中的blob的应用程序,可以很好地工作。

但如果您真的希望最大限度地提高性能,那么最好使用eXist或MarkLogic之类的XML数据库。

如果没有明确指出系统必须提供的性能指标,您似乎陷入了对性能焦虑的陷阱。

答案 1 :(得分:0)

这取决于您访问数据的方式。如果您想分别访问(甚至修改)部分数据,最好以原始形式存储,索引更容易创建。

如果系统的其余部分将您的数据视为黑盒子,您可能希望以XML格式存储数据。

第三种方法是使用XML感知(甚至原生XML)存储,这将允许您构建索引并对部分XML数据进行有效查询。

但这些只是一般指导原则,必须根据具体情况做出决定。

答案 2 :(得分:0)

如果没有更多信息,很难给出答案 - 什么样的数据,如何访问?表格也遵循这里的功能。

关系数据库和XML具有非常不同的模型(关系与层次结构),主要区别不一定是性能(两者都可以是高效的或低效的),而是使用和访问模式。 而且我不确定“原始”数据意味着什么 - 也许是平台默认序列化?

关于XML存储的一个小问题:XML压缩得很好,因此在存储大量的XML文档时,即时压缩(使用gzip等)是有意义的。压缩比可能很高;对于写成xml的日志文件,我有30比1的压缩。