搜索

首页  >  问答  >  正文

mongodb - mongo的sort排序问题

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

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

过去多啦不再A梦过去多啦不再A梦2792 天前824

全部回复(1)我来回复

  • ringa_lee

    ringa_lee2017-04-28 09:08:02

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

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

    回复
    0
  • 取消回复