mongo的sort排序问题

最近用了mongo,发现个问题,某个集合里,文档对象里有个ctime字段,是MongoDate类型的,我做这样的查询db.find().sort({'ctime':-1}).limit(10),发现是全表扫描了一遍,要想快除非建个{'ctime':-1}的索引
图片描述

但是用mysql的时候,ctime不建索引,扫描数量也不会很高,因为对数据库底层不是很了解,希望有大神可以指点一下,或者也许是我mongo使用错误,下面是mysql的详情
图片描述

阅读 6.3k
1 个回答

要想不扫描全表,索引当然是必须的,不然怎么知道其他数据里的ctime就一定不大于找出来的那几条数据呢。至于MySQL里,你怎么就知道它没有扫描全表呢?MySQL是的数据存储是紧密的,它扫描的速度要比Mongo快很多,所有在无索引的情况下MySQL很占优势。

Mongo的一大优势在于查询方式丰富,而要展现Mongo这一特点,合理必要的索引是必不可少的。

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