私は現在、DjangoとMySQLで作業していますが、言語やSQLデータベースの変更が必要なソリューションがある場合は、サーバーで処理するのに30分かかるレポートを改善する方法を探しています。それを開いている。レポート処理時間を改善する方法(Django/MySQL)?
複数のExcelファイルを読み込み、それらのファイルからすべての行を12K〜15Kレコードの範囲のテーブル(レポートテーブル)に挿入すると、テーブルには約50個の列があります。この部分はあまり時間がかかりません。
私はこのような何かを持っ終わるので、ビジネスロジックの複数のフェーズの適用を開始、レポートテーブル上のすべてのレコードを持っていたら:
def create_report():
business_logic_1()
business_logic_2()
business_logic_3()
business_logic_4()
business_logic_Xの各機能は非常に似た何かを、それReportModel.objects.all()
を実行して開始し、日付、数量などの確認などの複数の計算を適用してレコードを更新します。 12Kのレコードテーブルであるため、すぐに完全なレポートに時間を追加し始めます。
なぜ私は別々に複数の関数を処理しているので、次の関数のロジックが機能するように、最初の関数のロジックが完了する必要があるためです(例:最初の関数はすべての関連するレコード
私が知っている最初のことは、どういうわけか、各関数で呼び出すのではなく、objects.all()をキャッシュすることですが、どのようにそれを渡すかわかりませんレコードを保存せずに次の関数を呼び出す
関数の保存メソッドでupdate_fieldsを使用してレポートを少し最適化し、少し時間を節約しました。
私の質問は、この種の問題に対してより良いアプローチがありますか? Django/MySQLはこれに適したスタックですか?
を与えることはできません。 –