2000000万数据库 MongoDB 查询速度慢

一个表里面的数据大概是如下的,这种重复的,现在单纯的根据 toUserId 倒叙拿数据列表,就开始 10 秒左右才能够在前台拿到数据了,数据分页为 100 条每一页,现在数据库也有 1G 左右了,请问要怎么优化一下。但是聚合查询速度挺快的。在 toUserId 上索引也试过了,并不能提升性能。

~~~
{ "_id" : ObjectId("554c697550a1d1a42d00003a"), "time" : Timestamp(1431071093, 33), "text" : "这是数据库测试:17", "toUserId" : ObjectId("554c338c50a1d12022000029"), "state" : "未读", "forUserIdObj" : ObjectId("554c338c50a1d12022000029") }

{ "_id" : ObjectId("554c697550a1d1a42d00003b"), "time" : Timestamp(1431071093, 34), "text" : "这是数据库测试:18", "toUserId" : ObjectId("554c338c50a1d12022000029"), "state" : "未读", "forUserIdObj" : ObjectId("554c338c50a1d12022000029") }
~~~
阅读 7.7k
3 个回答

建议索引时间戳

索引那个userId不科学

照你这种情况,感觉不应该上mongodb,而应该上mysql

排序慢。分页慢。并不是索引的问题:查询瓶颈在于排序与分页。首先排序,每次分页都要重新排序一次。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题