mysql - 数据库 : Filtering XML based records by tag values

标签 mysql xml database-design nosql

我有一个要求,我们有很多(~200,000)条记录,每条记录有 200 个字段。在初始插入查询后,数据永远不会被更改,但会根据某些过滤器进行大量提取(例如:获取 field_3 = 42 和 field_42 = 3 的所有记录)。

我们使用关系表解决了这个问题,该表为 200 个字段中的每一个字段设置一列。一切都运行良好,直到......

我们对基于 XML 的记录也有类似的要求。区别在于,之前的记录只能包含 200 个字段,而新的 XML 记录可以包含约 1000 个标签池中的任意数量的标签。此外,大多数记录将非常稀疏(只有数十个标签)。 我的问题是,我们如何将早期的解决方案扩展到这些基于 XML 的记录? 我们需要查看 NoSQL 数据库吗?他们能很好地处理原始非 XML 记录吗?

几点:

  • 一个表中的记录是不可变的。我们只需要根据某些条件过滤记录即可。
  • 所有查询都将获取整个记录 (SELECT * FROM)。

最佳答案

“任意组合”== 大多数查询必须搜索整个表。是否有少数标签在大部分时间被使用?如果是,则对它们建立索引,但将其余的放入 JSON 列中。 (XML 确实很难处理。)

EAV discussion

关于mysql - 数据库 : Filtering XML based records by tag values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46969388/

相关文章:

mysql - 表示数据库中的下拉列表值

mysql - 如何获取mysql中未映射的记录

php - 一起使用 php 和 python

python lxml : import XSD from a buffer?

c# - 在 C# 中将 FileInfo 对象序列化为 XML

sql - 如何有效地对 SQL 数据库中的记录进行版本控制

php - "likes for comments"数据库设计?

mysql - 无法连接到部署到 CloudBees 的应用程序上的主机 MySQL 数据库

xml - 具有命名空间的标签的 Extract/extractValue

oracle - 如何在 Oracle 中的数据集上链接计算和转换 block ?