目前的项目情况。
- 从外部系统获取大量小于 50KB 的 XML,如果它包含附件,则大小约为 5MB MAX。由于内部嵌套元素,XML 结构的复杂性中等。有大约 70 个第一级元素,然后是它的子元素和子元素......将该 XML 存储在 MS SQL 服务器的 String 列中。
- 在存储 XML 时,我们从 XML 中读取搜索条件字段并将它们维护在新列中以改进搜索查询。
- 搜索功能以列表的形式显示这些消息数据。搜索条件字段(可选约 10 个字段)来自 XML 元素。解析该 XML 以在列表中显示元素(大约 10 -15)
- 将来也有可能报告功能。
此设计的挑战:如果引入了基于新条件搜索列表的新功能,则需要在 DB 表中再添加一列,并且必须从 XML 中存储该字段值,这不是此设计的最佳部分。
建议改进:计划不是以字符串格式存储 XML,而是将其存储为 XML 列,以去除多余的列来保持搜索字段的值,并使用 XML 列查询进行搜索和获取。
问题:
- 在搜索的情况下,哪个数据库会给我最佳性能?我必须只获取符合该搜索条件的 XML。
- SQL 或 NoSQL,如 MongoDB?
- 是否有可用的性能指标?或者任何相同的案例研究?
- 用于管理报告负载的数据库。