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

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

17 回复
chloe

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

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

xiashulin

@chloe 嗯,这个可以有

leapon

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

fish748

建索引呗。

Acceptedlc

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

haozxuan

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

xiashulin

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

dayuoba

除了升级服务器内存

见索引是用内存的

fancylife

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

xinyu198736

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

xiashulin

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

DavidCai1993

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

103777673

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

wenbob

數據多,就建index。

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

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