2011-02-15 46 views
0

我最近開始學習XSLT作爲模板引擎(對於PHP,如果有的話),我一直在想:你應該如何存儲數據?如果使用XSLT,你應該如何存儲數據?

  • XML - 似乎是低效率的規模而言,也許性能(因爲在數據庫存儲或文件
  • 原始數據 - 似乎咀嚼系統資源,因爲之前將其轉換爲XML的要求發送到XSLT引擎但在尺寸上要小得多

所以我的問題是:我應該使用什麼(或者你在使用什麼 - XML,原始數據,其他選項我不知道的)?

編輯:1.在「原始數據」我的意思是存儲字符串(在D B,例如)針對存儲整個XML文檔
2.辯論是關於一個MVC模式的圖這是應該的數據轉換成HTML/RSS/JSON/XML

+1

您應該提供完整的場景..即對演示文稿,業務和數據層有什麼限制? – 2011-02-15 19:14:25

+0

你似乎很困惑。 XML與原始數據的含義是什麼? – 2011-02-15 20:59:52

回答

1

對於許多將XML文檔存儲爲文件存儲中的文件的應用程序提供了非常好的性能。

同樣,對於某些將XML文檔存儲爲關係數據庫中的Blob的應用程序,工作得相當好。但是,如果您真的想要最大限度地提高性能,那麼最好使用諸如eXist或MarkLogic之類的XML數據庫。

您似乎陷入了對性能焦慮的陷阱,而沒有明確指出您的系統必須提供的性能。

0

這取決於你如何訪問數據。如果你想單獨訪問(甚至修改)部分數據,你最好用原始形式存儲它,索引更容易創建。

如果系統的其餘部分將您的數據視爲黑匣子,那麼您可能希望將數據存儲爲XML格式。

第三種方法是使用XML感知(甚至本機XML)存儲,這將允許您構建索引並對部分XML數據執行高效查詢。

但是,這些只是一般的指導方針,必須根據具體情況作出決定。

0

沒有更多的信息,很難給出答案 - 什麼樣的數據,它如何被訪問?形式也在這裏遵循功能。關係數據庫和XML具有非常不同的模型(關係vs層次結構),主要區別不一定是性能(既可以是高效的也可以是低效的),但是使用和訪問模式是不同的。 我不確定什麼「原始」數據意味着什麼 - 也許平臺默認序列化?

XML存儲的一個未解之謎:XML壓縮很好,所以當存儲大規模XML文檔時,動態壓縮(使用gzip等)是有意義的。壓縮比可能很高;我對以xml編寫的日誌文件進行了30比1壓縮。

相關問題