最佳的xml存储引擎

时间:2009-06-16 08:44:09

标签: xml storage

我正在考虑使用最佳的开源解决方案来存储xml文档,并进一步有效地查询它们。数据量很小。据我所知,原生xml数据库可能会为我的案例形成一个合适的解决方案。他们显然以高效的方式存储xml文档。了解你的经历会很棒。 关于正确解决的任何建议?您是否有在应用程序中使用xml存储引擎的经验?

2 个答案:

答案 0 :(得分:2)

我们在工作中使用原生XML服务器。如果你的数据低于100-200MB-s,它们就没问题了,但之后我找不到能够处理数据的合适服务器。我尝试了以下内容:

  • eXist:基于Java的原生XML服务器(开源):对于大文件,它通常会占用JVM的内存,然后抛出内存不足异常
  • sedna:基于C的原生XML服务器(开源):如果您尝试从数据库中查询非索引数据,可以处理真正大的数据库,但是可以处理段错误
  • Tamino XML数据库(专有):最早的XML数据库之一,虽然成熟但是支持糟糕的xquery(至少我们使用的几乎最新版本对XQuery非常糟糕),正如我们所看到的那样训练有素的专业人员无法正确设置,以便足够快。

以下是我的建议:

  • 对于小型数据和基于Java的系统,请尝试使用eXist。它甚至有一个类似SQlite的基于文件的数据库支持,可能很有用。
  • 对于中小型数据,性能问题使用sedna。根据我的测试,这是三个中最快的。
  • 如果您需要支持,请使用Tamino。它至少有支持。

对于大型数据库(1GB及以上),我不推荐其中任何一个(尚未)。 eXist通常在200MB大小的数据库中崩溃。当查询未编入索引的内容时,sedna在1GB大小的数据库中崩溃,而且在崩溃整个系统之前,tamino甚至无法在一次运行中加载500MB的数据。当然所有这些系统都在不断发展,所以稍后它们可以安全使用,但原生XML数据库仍然不成熟。

答案 1 :(得分:1)

您是否查看了主要供应商提供的解决方案,例如Oracle XML DB。我没有尝试过,但如果您有这样的预算,那肯定值得评估!

维基百科也有a nice list of XML Dbs,您可能希望对其进行评估。