操作sorted()
消耗了大量的CPU,并且应用程序每隔5秒使用它为每个用户按属性排序(这是一个连续修改的表)
您认为这将是优化此操作的最佳方式吗? 按字段更改属性并每隔5秒更新一次会是一个选项吗?
答案 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')