首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB在600k对象上的性能很差,替代DB?优化?

MongoDB在600k对象上的性能很差,替代DB?优化?
EN

Stack Overflow用户
提问于 2011-03-08 08:52:05
回答 1查看 936关注 0票数 5

我使用node.js和MongoDB启动了一个新项目,大约两天后,我在mongodb中收集了大约60万个对象。我已经注意到对性能的巨大(负面)影响,我开始担心我是否应该尽可能长时间地转移到另一个DB,或者我是否应该坚持使用Mongo并进行一些(更多)优化。

基本上我是这样存储坐标的:

代码语言:javascript
复制
[x1] => 687
[y1] => 167
[x2] => 686
[y2] => 167
[c] => 0
[s] => 0
[m] => 1299430700312
[_id] => MongoId Object (
    [$id] => 4d73bd2c82bb5926780001ec
)

不是更多..。我的查询如下所示:

代码语言:javascript
复制
{'$or': [ { x1: {'$gte' : 0, '$lt' : 1000 }, y1: {'$gte' : 0, '$lt' : 1000 } , { x2: {'$gte' : 0, '$lt' : 1000 }, y2: {'$gte' : 0, '$lt' : 1000 } } ] }

我已经尝试为每个字段设置索引: x1、y1、y1、y1以及for:{x1:1,y1:1},{x2:1,y2:1}。此外,我还只获取了所需的字段...但是,使用大约40k行的结果集执行查询,最终的运行时间为2-8秒。顺便说一句:在PHP中执行相同的查询时会出现内存不足的消息(256MB RAM)。

这台机器是英特尔(R)酷睿(TM) i7处理器920 @2.67 The,具有8 8GB内存,它不是机架上最脏的一台;)

我真的没有想法了,我看到在接下来的几周里会有数以百万计的行。正如您可能注意到的,行相对较小。使用分区的MySQL性能会更好吗?还有没有其他NoSQL DB?

还有,请仔细看看“2-8秒并不慢”--这已经成为一个问题了。当两个未缓存的请求同时命中机器时,负载增加到4个,并且访问它的用户少于10个。

EN

回答 1

Stack Overflow用户

发布于 2011-03-10 00:28:04

提高性能的一个又快又脏的方法(以牺牲内存/空间为代价)是使用index "x1“、"x2”、"y1“和"y2”,但也许你应该使用geospatial indexes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5227114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档