【发布时间】:2018-08-02 01:42:10
【问题描述】:
给定一个大型 (74GB) XML 文件,我需要通过给定的字母数字 ID 读取特定的 XML 节点。从上到下读取文件以查找 ID 需要很长时间。
XML 文件的索引是否类似于关系数据库的索引?我想象一个小的索引文件,其中字母数字 ID 可以快速找到,并指向较大文件中的位置。
是否存在 XML 的索引文件?如何在 C# 中实现它们?
【问题讨论】:
-
“给定一个大 (74GB) XML 文件” - 在开发过程或评估过程中,没有人会想:“等等,这不是文件会有点大,XML 真的是正确的存储格式吗?”?您确定索引会解决问题吗?您不想将内容实际读入 RDBMS 吗?
-
^^ CodeCaster 所说的 + 或者没有 一个 巨大的 XML 文件但有许多更小的 XML 文件不是更合理吗?当他们告诉我“我们有一个 74GB 的 XML 文件”时,我(作为高级开发人员)会告诉初级开发人员的第一件事是“你疯了吗?让我和提出这个的人谈谈……”跨度>
-
@CodeCaster - 是的,将 XML 文件读入数据库,并在数据库中索引列是一种选择。我很好奇是否有替代方案。
-
@Fildor - 这是另一种选择。当前正在运行批处理以将文件拆分为 1000 万个较小的 XML 文件。它已经连续运行了 48 小时 :)
-
一千万……哇。另一个重新考虑 XML 的理由。这是来自第 3 方系统的某种 DB 转储吗?
标签: c# xml performance indexing bigdata