我们的应用程序存储具有较短文本(100-1000 个字符的字符串)的记录。它提供对给定查询文本最相似记录的搜索。我们使用 Lucene 来索引文本。完整的记录存储在数据库中。每条记录只属于一个域,现在有 1000 多个域。域名数量不受限制,但增长缓慢。记录不断地添加到所有域中(不统一)。
我们使用 Mysql 作为数据库,每个域都有自己的表。现在由于横向扩展,我们尝试迁移到 MongoDB。所有记录都存储在单个集合中,域是记录的属性。ID 仍然是从 Lucene 搜索中获得的。但是我们观察到与使用 Mysql 的解决方案相比,从 MongDB 加载记录的性能较差。我怀疑MongoDB的“内存映射存储引擎”是原因。每次搜索都可以返回“随机记录”。通常会从一个域连续进行更多搜索。来自一个域的记录不会存储在集合中的一个位置。这可能会导致许多页面错误。
我的解释对吗?MongoDB 适合这种记录加载吗?什么可以提高性能?MongoDB 服务器和应用程序在 Linux 上运行。非常感谢。