我有一个要求,我们有很多(~200,000)条记录,每条记录有 200 个字段。在初始插入查询后,数据永远不会被更改,但会根据某些过滤器进行大量提取(例如:获取 field_3 = 42 和 field_42 = 3 的所有记录)。
我们使用关系表解决了这个问题,该表为 200 个字段中的每一个字段设置一列。一切都运行良好,直到......
我们对基于 XML 的记录也有类似的要求。区别在于,之前的记录只能包含 200 个字段,而新的 XML 记录可以包含约 1000 个标签池中的任意数量的标签。此外,大多数记录将非常稀疏(只有数十个标签)。 我的问题是,我们如何将早期的解决方案扩展到这些基于 XML 的记录? 我们需要查看 NoSQL 数据库吗?他们能很好地处理原始非 XML 记录吗?
几点:
- 一个表中的记录是不可变的。我们只需要根据某些条件过滤记录即可。
- 所有查询都将获取整个记录 (
SELECT * FROM
)。
最佳答案
“任意组合”== 大多数查询必须搜索整个表。是否有少数标签在大部分时间被使用?如果是,则对它们建立索引,但将其余的放入 JSON 列中。 (XML 确实很难处理。)
关于mysql - 数据库 : Filtering XML based records by tag values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46969388/