在我正在工作的一个项目中,客户有一个旧的和海量(TB 级)的 RDBMS。各种查询都很慢,没有时间修复/重构模式。我已经确定了需要优化的常见查询集。该集合分为两部分:全文查询和元数据查询。
我的计划是从他们的数据库中提取数据并将其分区到两个不同的存储系统中,每个存储系统都针对特定的查询集进行了优化。
对于全文搜索,Solr 是最有意义的引擎。它的分片和复制功能使其非常适合解决一半的问题。
对于元数据查询,我不确定采取什么路线。目前,我正在考虑使用具有极度非规范化模式的 RDBMS,该模式表示来自“权威”RDBMS 的特定数据子集。但是,我的客户担心与已经包含它们的 Solr 相比,此类子系统缺乏分片和复制,以及设置此类功能的困难/复杂性。在这种情况下,元数据采用整数、日期、布尔值、位和字符串的形式(最大大小为 10 个字符)。
是否有具有内置分片和复制功能的数据库存储系统可能对查询所述元数据特别有用?也许有一个提供良好查询引擎的无 sql 解决方案?
请照亮。
补充/回应:
Solr 可用于元数据,但是元数据是易失的。因此,我必须经常提交索引。这将导致搜索性能下降得非常快。