gpt4 book ai didi

Django 过滤器或 - q 对象性能与 I 性能

转载 作者:行者123 更新时间:2023-12-01 08:29:18 29 4
gpt4 key购买 nike

什么会有更好的表现?哪个更快?这意味着较低的数据库负载?

Item.objects.filter(Q(creator=owner) | Q(moderated=False))

或者
result = Item.objects.filter(item.creator = owner) | Item.objects.filter(item.moderated = False)

最佳答案

这些应该生成相同的 SQL。我没有你的模型定义,但使用 auth.User模型你可以看到它是一样的:

>>> from django.contrib.auth.models import User
>>> from django.db.models import Q
>>> q1 = User.objects.filter(Q(is_staff=True) | Q(is_superuser=True))
>>> print(q1.query)
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE ("auth_user"."is_staff" = True OR "auth_user"."is_superuser" = True)
>>> q2 = User.objects.filter(is_staff=True) | User.objects.filter(is_superuser=True)
>>> print(q2.query)
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE ("auth_user"."is_staff" = True OR "auth_user"."is_superuser" = True)
>>> str(q1.query) == str(q2.query)
True

关于Django 过滤器或 - q 对象性能与 I 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24165978/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com