最佳答案
这个问题是关于在深入研究实验和实现的细节之前做出架构选择。这是关于elasticsearch与MongoDB在可伸缩性和性能方面的适用性,用于某种特定的目的。
假设两者都存储有字段和值的数据对象,并允许查询对象体。因此,根据所选择的字段,过滤出对象的子集,这两者都适用。
我的应用程序将围绕着根据标准选择对象。 它会通过多个字段同时过滤来选择对象,换句话说,它的查询过滤条件通常包括1到5个字段,在某些情况下可能更多。而选择作为过滤器的字段将是大量字段的子集。假设存在大约20个字段名,并且每个查询都试图从这20个字段中通过少数几个字段过滤对象(现有的总字段名可以少于20个,也可以多于20个,我只是使用这个数字来演示每个离散查询中用作过滤器的字段与字段的比例)。过滤可以通过所选字段的存在进行,也可以通过字段值进行,例如过滤出具有字段A、字段B在x和y之间、字段C等于w的对象。我的应用程序将不断地进行这种过滤,而对于在任何时候使用哪些字段进行过滤,将没有任何常数或很少常数。也许在elasticsearch中需要定义索引,但也许即使没有索引,速度也与MongoDB相当。
至于数据进入商店,没有特别的细节。对象在插入后几乎不会改变。也许旧对象需要被删除,我想假设两个数据存储都支持在内部或通过应用程序查询过期删除东西。(更不常见的情况是,适合某个查询的对象也需要被删除)。
你觉得呢? 你在这方面做过实验吗?< / p >
对于这类任务,我感兴趣的是两个数据存储的性能和可伸缩性。这是一种体系结构设计问题,欢迎提供特定于商店的选项或查询基础的细节,以展示经过充分考虑的建议。
谢谢!