ベクトルのコレクションがありますコレクションのサイズ
print vectors.count()
は
102020
フィールドを反復するとき
start = time.time()
for v in vectors.find({},{'vector' : 1, '_id' : 0}):
pass
print "total time:" , end-start
合計時間:5.05100011826
しかし、explain()を使用して実行すると、クエリにかかる時間が大幅に短縮されることがわかります。
print vectors.find({},{'vector' : 1, '_id' : 0}).explain()
{u'nYields':0、u'allPlans':[{u'カーソル':u' BasicCursor'、u'indexBounds':{}}]、u'nChunkSkips':0、u'ミリ秒':23、u 'n':102020、u'カーソル':u'BasicCursor'、u'indexBounds':{}、u'nscannedObjects':102020、u'isMultiKey':False、u'indexOnly':False、u'nscanned': 102020}
なぜこんなに大きな時差があるのですか?これをスピードアップする方法はありますか?すべてのベクターをSQLDBテキストフィールドにロードしましたが、同じクエリは1秒未満でした。ありがとう