目的: 在超过10万条数据 随机 选取一条数据。我的方法: data=db[item].find().skip(random_num).limit()遇到问题: 耗费时间很长才能随机找到数据。根据profile测试,是因为find().怎么优化?
ランダムに取得する場合は、特定のクエリ条件に従って行うことをお勧めします。直接スキップしないでください。
mongo の集計フレームワークをご存知ですか?高性能の鍵をチェックしてください。ライブラリ間または参照されない限り、使用できます。
まずアイテムにインデックスを作成します。これにより、クエリ速度が大幅に向上します。さらに、乱数条件を特定のクエリ条件 (乱数で構築) に変えることができます。さらに、集計フレームワークは、あなたのような単純な検索クエリには役に立ちません。
ランダムに取得する場合は、特定のクエリ条件に従って行うことをお勧めします。直接スキップしないでください。
mongo の集計フレームワークをご存知ですか?高性能の鍵をチェックしてください。ライブラリ間または参照されない限り、使用できます。
まずアイテムにインデックスを作成します。これにより、クエリ速度が大幅に向上します。さらに、乱数条件を特定のクエリ条件 (乱数で構築) に変えることができます。さらに、集計フレームワークは、あなたのような単純な検索クエリには役に立ちません。