MongoDB数据库其中一个表有1千万条数据,非Id查询非常缓慢,有啥提高性能的方法
发布于 6 年前 作者 xiashulin 7896 次浏览 最后一次编辑是 5 年前 来自 问答

一次查询要几十秒啊,除了升级服务器内存,还有啥好办法啊,不要说分表、转移数据之类的方法

17 回复

db.collection.explain().find(query) 分析一下为什么慢,然后建立合理的索引

http://docs.mongodb.org/manual/reference/method/db.collection.explain/#db.collection.explain

@chloe 嗯,这个可以有

加 index 了嘛?考虑上多字段的index。

建索引呗。

贴一下explain的结果啊 自豪地采用 CNodeJS ionic

对关键字段加索引,会有惊喜哟。(推荐看下mongodb权威指南,第二版)

嗯,大家的建议是对的,加了索引,效果真心不错

除了升级服务器内存

见索引是用内存的

马克 自豪地采用 CNodeJS ionic

根据你的业务查询条件增加联合索引,例如: http://docs.mongodb.org/manual/core/index-compound/

这么多数据,看文档大小,如果文档比较大,建索引有效果,但是查询也不会快到哪去。

当数据量太大的时候,建索引都卡死

索引就是为数据量大时准备的啊~

数据量过大mongo查询不灵的,建mysql映射表,查询出主键,通过主键调取mongo的数据

@103777673 或者elasticsearch

數據多,就建index。

如果數據多到建了index還是卡,那就說明要加節點了,用集羣的併發解決問題

——這一招叫做“乾坤一擲”,有立竿見影的效果,就看你老闆是不是批准了。

回到顶部