Xml或Sqlite,何时为数据库删除Xml?

前端之家收集整理的这篇文章主要介绍了Xml或Sqlite,何时为数据库删除Xml?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我真的很喜欢Xml来保存数据,但是什么时候sqlite / database成为更好的选择?例如,当xml具有多于x个项目或大于y MB时?

我编码一个RSS阅读器,我相信我错误的选择使用xml在sqlite数据库存储所有订阅源项目的缓存。有一些Feed有一个〜1mb一个月的xml文件,另一个有700多个项目,而大多数只有〜30项,几个月后大小约50kb。

我目前没有计划实施上限,因为我喜欢能够搜索一切。

所以,我的问题是:

>什么时候sqlite /数据库的开销通过使用xml?
>几个大型的xml文件对于数据库来说足够多,当有很多小的数据库时,虽然小的数据库会随着时间的推移而增长? (长时间长)

更新(更多信息)

每次在GUI中选择一个订阅源时,我会重新加载来自该订阅源xml文件的所有项目。

我还需要修改读/未读状态,当我循环遍历xml中的所有节点,找到该项,然后将其设置为读/未读似乎真的hacky。

我基本同意 Mitchel,这可以是高度具体取决于你将使用XML / sqlite做什么。对于你的情况(缓存),在我看来,使用sqlite(或其他嵌入式dbs)更有意义。

首先我不认为sqlite将需要比XML更多的开销。我的意思是开发时间开销和运行时开销。只有问题是你有依赖sqlite库。但是因为你需要一些XML库,无论如何它没有关系(我认为项目是在C/C++)。

sqlite对xml的优点:

>一切都在一个文件
>性能损失低于XML缓存越来越大,
>您可以将Feed元数据与缓存本身(其他表)分开,但可以以相同的方式访问,
>对于大多数人来说,sql可能比XPath更容易使用。

sqlite的缺点:

>可能有问题与多个进程访问相同的数据库(可能不是你的情况),
>你应该至少知道基本的sql。除非在缓存中有成千上万的项目,我不认为你会需要优化它,
>也许在某种程度上,从安全角度(sql注入)可能更危险。另一方面,你不是编码Web应用程序,所以这不应该发生。

其他的东西在两个解决方案可能。

总结一下,你的问题分别回答:

>你不会知道,除非你用两个后端测试你的具体应用程序。否则它总是只是一个猜测。对这两个缓存的基本支持不应该是代码的问题。然后进行基准和比较。>由于XML文件的组织方式,sqlite搜索应该总是更快(除去一些角落的情况下,它不重要,无论如何,因为它的速度快)。加速搜索XML将需要索引数据库,在你的情况下,这意味着缓存缓存,不是一个特别好的主意。但是使用sqlite,您可以将索引作为数据库的一部分。

原文链接:https://www.f2er.com/xml/293899.html

猜你在找的XML相关文章