このアプリケーションを複数の CPU で実行する場合は、セットアップに応じていくつかの方法を試すことができます。
頭に浮かぶ最も明白なことは、アプリケーションでスレッドとマルチプロセスを利用することです。これにより、アプリケーションは一度に「より多くのことを行う」ことができます。明らかに、ここで発生する可能性のある問題は同時データベース アクセスであるため、トランザクションを使用する必要がある場合があります (その時点で、そもそもマルチプロセスを使用する利点が失われる可能性があります)。
次に、多数のデータベース接続を開いたり閉じたりしていないことを確認し、アプリケーションが必要なだけ接続を開いたままにできることを確認します。
3 番目に、データベースのインデックスが正しく作成されていることを確認します。大きな文字列を検索している場合、処理が遅くなります。
第 4 に、Python にほとんど操作を残さずに SQL でできることはすべて行います。SQL は、許可すればデータ操作を恐ろしく迅速に実行できます。データベースからデータを取り出してコードに取り込み始めるとすぐに、処理速度が大幅に低下します。
第 5 に、データベース内で内部的にキャッシュおよび最適化できるストアド プロシージャを利用します。これらは、簡単に最適化できないアプリケーションで構築されたクエリよりもはるかに高速です。
第六に、プログラムの反復ごとに保存しないでください。多数のレコードを変更し、それらすべてを 1 つのバッチ ジョブに保存するバッチ スタイルのジョブを作成してみてください。これにより、各反復での IO の量が削減され、プロセスが大幅に高速化されます。
Django は一括更新メソッドの使用をサポートしています。一度に複数の Django オブジェクトを保存することについて、stackoverflow に関する質問もありました。