可以将XML文件有效地用作VB.NET应用程序的数据库吗?
我已经用这种方式编码了,应用程序运行成功。
问题是:当存储/数据大小增加时,程序是否会以与现在运行相同的方式运行? (即具有相同的响应时间等)
答案 0 :(得分:2)
通过将数据存储在Xml文件中,您将遇到许多可伸缩性问题。我建议您将Xml打包成有意义的文档,并将它们存储在数据库中,无论是传统的RDBMS,还是存储在Xml NoSql数据库中。
多用户争用。由于您已标记vb.net
,因此在遇到与数据库大小相关的任何其他性能问题之前,您的第一个问题可能是并发和争用文件系统上的Xml文件。虽然多个用户可能同时读取该文件,但只要您有一个或多个并发作者,就会有争用。
缺少随机访问/索引搜索 - 如果您需要在数据中搜索,使用Xml通常需要连续扫描整个Xml文件。这将是IO密集型。专用数据库可以使用数据索引来减少IO。
内存 - 如果访问Xml数据的主要特性是只读的(例如,如果它主要包含用于填充屏幕等的静态数据,但不用于读/写数据存储),则可能是倾向于将其缓存在内存中,以弥补由#2引起的对数据的快速随机访问的缺乏。这种方法显然有局限性。
将文件转换为数据库
您没有详细说明您在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的便利性和灵活性。