具有sorted()

时间:2016-12-28 10:05:20

标签: python django sorting

操作sorted()消耗了大量的CPU,并且应用程序每隔5秒使用它为每个用户按属性排序(这是一个连续修改的表)

您认为这将是优化此操作的最佳方式吗? 按字段更改属性并每隔5秒更新一次会是一个选项吗?

2 个答案:

答案 0 :(得分:0)

如果您的表位于数据库中,您可能最好通过Django的查询集(https://docs.djangoproject.com/en/1.10/ref/models/querysets/#order-by)对SQL工具进行排序(大部分时间因为字段被索引而更快):

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

但是,如果您指定使用您经常订购的桌子的方式和内容,我们将能够提供更好的答案。

答案 1 :(得分:0)

正如Fian所说,SQL在排序和数据处理方面已经非常优化。尝试将流程密集型方法限制为SQL或使用pandas在应用程序级别对数据进行排序。

添加到Fian的答案,按字段升序,在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')