如何处理解析大型xml文件并将其保存在数据库中

时间:2011-03-07 21:38:53

标签: xml database parsing

我有一个相当大的xml文件(大于2mb),我正在解析并存储在sqlite数据库中。我可以解析它并且第一次存储它很好。我的问题是当我想再次解析xml文件(更改,添加或删除)时更新数据库。我最初的想法是擦除数据库中的信息并再次插入而不是解析数据,检查给定项目是否已存在于数据库中并进行更新。有没有比另一种更好的方法?会不会有这样或那样的表现?我很欣赏有关此事的任何想法。

2 个答案:

答案 0 :(得分:2)

仅插入需要更改的内容显然比转储整个数据库并重新插入更快。至少那是我的想法。

我认为这取决于您要检查的信息的复杂程度,以及您执行该过程的代码的效率。如果您不熟悉这样的验证,那么转储和重新插入将是一个更安全的选择。

答案 1 :(得分:2)

是的,重新插入可能是一个坏主意。 xml结构有多复杂,当您查询结构反映的一个项目的存在时涉及多少个表?

如果它很复杂,您可能能够创建条目的校验和或某些属性和值的散列,这些属性和值唯一地标识记录,并在您查找已修改的条目时将此散列/校验和存储在db中的额外表中你只需计算哈希/校验和并在一个表中查找它。也许这甚至会使查询更快,这取决于哈希计算的成本。