2016-10-05 2 views
3

imデータベースのクエリーから値を表示するためにdjango-tables2を使用しています。そして、すべてうまく動作します。私は今Django-dabug-toolbarを使って、私のページを見ていました。パフォーマンスのニーズよりも好奇心に欠けている。テーブルのあるページでlokkedと表示されたとき、デバッグツールバーは300を超えるクエリを300以上のクエリで登録していました。パフォーマンスの影響がない(少なくとも今はない)場合でも、非常に多くのクエリでDBをフラッディングするのは良い考えです。すべてのデータは1つのクエリから来ている必要があります。django-tables2クエリーを伴うデータベースのフラッディング

なぜこのようなことが起こり、どのようにクエリの数を減らすことができますか?

答えて

2

これは、同じ問題を抱えている可能性のある自分自身や他の人のための将来の参考資料として投稿しています。

ビットを検索した後、django-tables2が各行に対して1つのクエリを送信していることが分かりました。クエリは、オフセットが増加するSELECT * FROM "table" LIMIT 1 OFFSET 1のようなものでした。

テーブルを作成してクエリを渡す前に、query = list(query)を呼び出してSQL呼び出しの数を減らしました。 Pythonのビューコードでクエリを評価することによって、テーブルは現在、evaulatedデータで動作するように見え、数百ではなくデータベース呼び出しが1つしかありません。

関連する問題