XML文件可以用作高效的VB.NET后端吗?

时间:2013-11-24 18:36:11

标签: xml database vb.net backend processing-efficiency

可以将XML文件有效地用作VB.NET应用程序的数据库吗?

我已经用这种方式编码了,应用程序运行成功。

问题是:当存储/数据大小增加时,程序是否会以与现在运行相同的方式运行? (即具有相同的响应时间等)

3 个答案:

答案 0 :(得分:2)

通过将数据存储在Xml文件中,您将遇到许多可伸缩性问题。我建议您将Xml打包成有意义的文档,并将它们存储在数据库中,无论是传统的RDBMS,还是存储在Xml NoSql数据库中。

  1. 多用户争用。由于您已标记vb.net,因此在遇到与数据库大小相关的任何其他性能问题之前,您的第一个问题可能是并发和争用文件系统上的Xml文件。虽然多个用户可能同时读取该文件,但只要您有一个或多个并发作者,就会有争用。

  2. 缺少随机访问/索引搜索 - 如果您需要在数据中搜索,使用Xml通常需要连续扫描整个Xml文件。这将是IO密集型。专用数据库可以使用数据索引来减少IO。

  3. 内存 - 如果访问Xml数据的主要特性是只读的(例如,如果它主要包含用于填充屏幕等的静态数据,但不用于读/写数据存储),则可能是倾向于将其缓存在内存中,以弥补由#2引起的对数据的快速随机访问的缺乏。这种方法显然有局限性。

  4. 将文件转换为数据库

    您没有详细说明您在Xml文件中存储的内容,但是,如果Xml是最合适的存储格式,我建议您将文件分解为适合您的域的逻辑存储单元(聚合根/文档)

    可以使用专用的Xml Document / NoSql database来存储这些文档,或者许多传统的Sql数据库也可以很好地支持存储Xml文档(例如MS Sql Server)。

答案 1 :(得分:1)

对于数据库XML非常棒,仅适用于DATA ....

它也很闪电!

我创建了一个模块,可以让我快速存储数据...... 在具有2.67 GHz 4核Intel i5 CPU的7200 RPM驱动器上

发布以下表现......

50,000条作品以0.18秒的速度写作......

在0.17秒内从数据库中拨出20,000个条目......

速度不受数据库大小的影响,&您可以存储无限量的数据(例如太字节),但是,您对数据执行的操作会减慢实际发布数据的速度,因此如果您正在执行类似构建字符串的操作,那么该功能将减慢发布速度数据,如果你只是发布,那是一个不同的故事......

这对你来说够快吗?

问题是,设置这样一个高效的数据库相当困难,对不起我不能放弃我的秘密,因为我花了一段时间来构思如何有效地存储/拉/删/更新数据来吹SQL出了怪水...

现在,说到这一点,你应该知道它可以做到,但困难的是,你是否愿意自己努力创造呢?

答案 2 :(得分:0)

告诉我们数字......

我们有一个内部应用程序,使用单个10Mb XML文件作为其数据库,可以很好地运行。但它每天只进行大约10次交易,因此每次将整个10Mb写回磁盘是完全可行的。如果它是每秒10次交易,那将是一个完全不同的故事。

对于更高的数据大小和事务率,考虑一个XML数据库,它结合了数据库的可扩展性和XML的便利性和灵活性。