CNode

MongoDB数据库其中一个表有1千万条数据,非Id查询非常缓慢,有啥提高性能的方法

问答
Xxiashulin发布于11 年前最后回复11 年前17 回复12184 浏览0 收藏

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

查看回复

回复 (17)

C
chloe#1·11 年前

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

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

X
xiashulin#2·11 年前

@chloe 嗯,这个可以有

L
leapon#3·11 年前

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

F
fish748#4·11 年前

建索引呗。

A
Acceptedlc#5·11 年前

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

H
haozxuan#6·11 年前

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

X
xiashulin#7·11 年前

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

D
dayuoba#8·11 年前

除了升级服务器内存

见索引是用内存的

K
klausgao#9·11 年前

马克 自豪地采用 CNodeJS ionic

F
fancylife#10·11 年前

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

P
pangguoming#11·11 年前

分片就是了

X
xinyu198736#12·11 年前

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

1
103777673#13·11 年前

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

W
wenbob#15·11 年前

數據多,就建index。

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

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

X
xiashulin#16·11 年前

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

D
DavidCai1993#17·11 年前

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

参与回复
登录后即可参与回复。登录