私は(バッチMLの目的で)+ 500万人以上のアイテムのクエリセットを扱っていると私はに必要なクエリセットを評価せずにクエリセット(私は、マルチスレッド操作を行うことができます)を分割しましたクエリーセット内の各項目に一度アクセスするため、原因を評価するクエリーセット項目をキャッシュしたくありません。Djangoクエリーセットを評価せずに分割する方法はありますか?私は今までに必要と
項目を1つのクエリーセットに選択し、評価なしで分割することはできますか?あるいは、私はLimits [:size]を使って複数のクエリーセットをクエリすることでこの問題を解決する必要がありますか?
NB:私は反復処理可能で、それを評価せずにクエリセットを循環するために使用することができますが、私の質問は(可能であれば)私は、その後の各上のiterableを実行するために、クエリセットを分割することができますどのように関連していることを認識しています分割されたクエリーセット。
それを繰り返して、ワーカースレッドが作業をフェッチできるようにしてください。これは、Djangoを使った単一のクエリで動作することが想像できる唯一の方法です。 (ちょうどかなり多くのスレッドセーフ反復子を渡します。) – Ryan
djangoクエリは、何か強制的な評価に達するまで評価されません。そしてスライスすることができます。だからmyQuery [1000:11000]はきれいにあなたにクエリの一部を与えます。そして、いいえ、スライスを得るために全体を評価するわけではありません。 –