搜尋

首頁  >  問答  >  主體

pymongo - mongodb 的find()耗時太長,該如何優化?

目的: 在超過10萬個資料 隨機 選取一條資料。
我的方法: data=db[item].find().skip(random_num).limit()
遇到問題: 耗費時間很長才能隨機找到資料。根據profile測試,是因為find().怎麼優化?

世界只因有你世界只因有你2767 天前894

全部回覆(3)我來回復

  • 仅有的幸福

    仅有的幸福2017-04-28 09:06:33

    建議在隨機取得時候根據具體的查詢條件來做。不要直接透過skip的方式。

    回覆
    0
  • 某草草

    某草草2017-04-28 09:06:33

    你知道mongo的聚合框架不?查查吧,高性能的關鍵。只要不是跨庫,不是引用,都能用。

    回覆
    0
  • 阿神

    阿神2017-04-28 09:06:33

    先在item上建立索引,可以大幅提高查詢速度。另外可以把隨機數條件變成具體查詢條件(用隨機數建構)。另外,聚合框架對你提出的這種簡單地find查詢並沒有什麼幫助。

    回覆
    0
  • 取消回覆