【发布时间】:2019-01-19 07:51:38
【问题描述】:
我正在使用 Python 2.7 和 Django 1.9.2
我正在尝试做一个条件,如果查询集不为空,就会有一个功能。当我的查询集已经增加到 56,000 条记录时,我意识到了一些事情。使用该查询集的一个简单条件几乎需要 5 秒,但如果我在查询集中添加 .exists(),它就会非常快。
请检查下面的sn-p
from record.models import Record
records = Records.objects.filter(result=0)
if records: # this takes almost up to 5 seconds with 56,000 records
# do stuff here
与.exists():
from record.models import Record
records = Records.objects.filter(result=0)
if records.exists(): # very fast abd just takes milliseconds
# do stuff here
任何解释为什么第一个这么慢?我开始认为第一个循环在执行if 时会循环records 变量的值@
【问题讨论】: