我想知道在django中哪一个查询速度更快。我有一个位置模型和一个用户模型。用户是外键到位置的,因此每个位置都可以有一个“locationuser_set”属性。
如果我有成千上万的用户,哪个更快?
问题1:

location = Location.objects.get(id=<id>)
users = location.user_set.all()

问题2:
users = User.objects.filter(location_id=<id>)

最佳答案

查询2完全等同于查询1的第二行。但是,由于查询1还包括第一行,这一行执行单独的位置查找,因此速度必然较慢。
如果不需要实际的location对象,那么2绝对是正确的选择。

10-06 10:25
查看更多