2016-12-28 24 views
0

操作sorted()は、CPUを大量に消費し、アプリが各ユーザーのプロパティで5秒ごとに注文することを利用している(それは継続的にmodifiyngされているテーブルです)CPU高負荷()

この操作を最適化するにはどうすればよいと思いますか? フィールドでプロパティを変更し、5秒ごとに更新するとオプションになりますか?場合、しかし、

my_sorted_table = MyModel.objects.all().order_by('my_order_field') 

:あなたのテーブルの場合

+1

あなたは 'sort 'を呼び出すアプリケーションとコードを制御できますか?もしそうなら、あなたはそれを投稿できますか? –

答えて

0

は、Djangoのクエリセットを通して(フィールドがインデックス化されているので、ほとんどの時間が速くなります)SQLツールとのデシベル、あなたはおそらくより良いソート(https://docs.djangoproject.com/en/1.10/ref/models/querysets/#order-by)でありますあなたはあなたがいつも注文しているテーブルをどのように使っているのかを指定して、より良い答えを出すことができます。

+0

order_byはフィールドではないので使用できません。これは整数を返すプロパティです。 – Blainn

0

Fianが示唆しているように、SQLはソートとデータ処理に非常に最適化されています。プロセス集中型のメソッドをSQLに制限するか、またはpandasを使用してアプリケーション・レベルでデータをソートしてください。

フィアンの答えに、フィールドごとに昇順で並べ替える場合は、order_byメソッドでは「field_name」を、order_byフィールドでは「-field_name」( - )を使用します。

my_sorted_table = Model.objects.all().order_by('field') 
my_sorted_table = Model.objects.all().order_by('-field') 
+0

ありがとう@ rahul-reddy-vemireddy、しかしソートの理由は、アプリケーションがフィールドでソートされていないということです。これは整数を返すプロパティです。 – Blainn

+0

そのプロパティのコードを表示する必要があります。db内でそのプロパティを計算する方法があるかもしれません。 –

関連する問題