python - 哪个更快 : using django database order_by or list sort?

标签 python django django-database

我有一个带有 scorequizzes_done 的 Django 模型。我想计算分数和 quizzes_done 的百分位数。为此,我需要创建两个排序列表。对于第一个,我这样做:

s_recs = MyRecord.objects.all().order_by('score')
score_list = [r.score for r in s_recs]

我可以执行相同的操作以获得排序的 quiz_list 或者我可以使用 python 排序。我想知道哪个更快。

使用我们上面得到的s_recs并做

quizzes_list = [r.quizzes_done for r in s_recs]
quizzes_list.sort()

q_recs = MyRecord.objects.all().order_by('quizzes_done')
quizzes_list = [r.quizzes_done for r in q_recs]

最佳答案

这是一个小函数,您可以将它们都传递给时间:

def timedcall(fn, *args):
    "Call function with args; return the time in seconds and result."
    t0 = time.clock()
    result = fn(*args)
    t1 = time.clock()
    return t1-t0, result

这将返回时间和您调用的函数返回的任何结果。我想您会发现,除非您对数以千计的记录进行排序,否则差别不大,但我很想听听结果。

关于python - 哪个更快 : using django database order_by or list sort?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799240/

相关文章:

python - 没有默认方法的对寄存器数组进行排序

python - Django 无法识别序列化器中当前用户的字段覆盖

django - 在单个容器中dockerize gunicorn,nginx,django

python - django 1.5 select_for_update 被认为是脆弱的设计

django - 删除数据库后表 'django_migrations' 已存在

python - 我的准确度是 0.0,我不知道为什么?

python - 我的 CSV 编写器代码在字符之间写入分隔符而不是字符串

python - 如何在 Keras 中使用 TensorFlow 指标

python - 无法通过 HTML 表单在 Django 中上传文件并且发布时无法在表单中设置值

mysql - 通过排序或索引提高 Django 数据库性能?