mongoDB vs. elasticsearch 查询/聚合性能比较

23 浏览
0 Comments

mongoDB vs. elasticsearch 查询/聚合性能比较

这个问题是关于选择在应用程序上运行查询的数据库类型。暂时不考虑其他因素,假设选择的是mongodb和elastic之间,关键的标准是查询应该在几乎实时的情况下解决。这些查询将是即席查询,因此可以包含JSON对象中的任何字段,并且可能包含聚合和子聚合。此外,不会有嵌套对象,并且没有字段会包含“描述性”文本(如电影评论等),也就是说,所有字段都将是关键字类型的字段,如State、Country、City、Name等。\n现在,我读到了elasticsearch的性能几乎是实时的,并且elasticsearch使用倒排索引,并为每个字段自动创建它们。\n根据上述所有情况,我的问题如下。\n(在stack中有一个类似的问题,但我认为它没有回答我的问题。\nelasticsearch v.s. MongoDB for filtering application)\n1)由于我提到的用例中的字段不包含描述性文本,因此不需要elasticsearch提供的全文搜索功能和其他附加功能(尤其是对于文本搜索),在elastic和mongo之间哪个选择更好?如果在mongo中为所有可用字段创建单个字段索引,elastic search和mongo查询/聚合性能如何比较?\n2)我对高级索引不熟悉,所以我假设可以在mongo的所有可用字段上创建索引(使用多个单字段索引或者可能是复合索引?)。我理解这会带来存储和写入速度的代价,对于elastic来说也是如此。\n3)此外,在elastic中,用户可以在写入速度(索引速率)和写入文档变为可用(刷新间隔)的速度之间进行权衡。mongo中是否有类似的功能?

0
0 Comments

问题的原因:根据2015年的一项基准测试,如果数据集超过1000万个文档,Elasticsearch可能是更好的选择。对于小型数据集,Elasticsearch和MongoDB之间的性能差异应该不明显。

解决方法:根据数据集的大小选择合适的数据库引擎。如果数据集较小,可以选择Elasticsearch或MongoDB。如果数据集较大(超过1000万个文档),Elasticsearch可能会提供更好的性能。

根据这个问题,我们可以总结出MongoDB和Elasticsearch在查询和聚合性能方面的比较。

0