发布网友 发布时间:2022-04-25 02:28
共3个回答
热心网友 时间:2022-04-08 09:54
分片是水平扩展的方式,你试试用replica set能不能提高读的效率,一个replica set里可以同时从每个副本读取数据,理论上应该可以提高一点速度。
另外那么大的数据,必须要建立索引,而且需要针对你的查询需求建立索引,你要怎么查,就得对那些项建立,否则查询的时候会遍历整个数据库,当数据库大于内存的时候速度会慢的难以忍受。
还有一点就是,如果索引大于内存,即使建立索引,速度也会大大降低。所以提高查询效率最好的方法还是先分析好你的查询需求,然后加大内存
热心网友 时间:2022-04-08 11:12
Mongodb的模糊查询本身就非常的差,不推荐使用。
解决方案:
1. 用最新版本的Mongodb,提供了全文索引的功能,比较新,但不知道是否好用。
2. 用Lucene、Solr作为模糊查询功能 (如果用Mongodb,那么是目前模糊查询比较好的解决方案)
热心网友 时间:2022-04-08 12:46
你的sharding key是不是设的不科学?如果mongodb可以根据你的query和sharding key来判断数据在哪一段,它根本就不会去其他地方搜索,速度能快不少。