特定数据库访问查询优化

2024-05-19 01:48:14 发布

您现在位置:Python中文网/ 问答频道 /正文

In [14]: from accounts.models import CustomUser

In [15]: CustomUser.objects.filter()
Out[15]: <QuerySet [<CustomUser: nimish4july1998@gmail.com,Nimish,(9)>, <CustomUser: company1@gmail.com,Escale,(10)>, <CustomUser: adv1@gmail.com,advertiser1,(16)>, <CustomUser: adv2@gmail.com,,(17)>, <CustomUser: adv3@gmail.com,,(18)>, <CustomUser: adv4@gmail.com,,(19)>, <CustomUser: adv5@gmail.com,,(20)>, <CustomUser: ok@gmail.com,,(33)>, <CustomUser: pub_company1@gmail.com,,(34)>, <CustomUser: ,,(35)>, <CustomUser: employee1@gmail.com,,(40)>, <CustomUser: employeeno1@gmail.com,,(41)>, <CustomUser: adv500@gmail.com,,(42)>]>



In [17]: CustomUser.objects.using("company1")
Out[17]: <QuerySet [<CustomUser: nimish4july1998@gmail.com,Nimish,(9)>, <CustomUser: company1@gmail.com,Escale,(10)>, <CustomUser: adv1@gmail.com,advertiser1,(16)>, <CustomUser: adv2@gmail.com,,(17)>, <CustomUser: adv3@gmail.com,,(18)>, <CustomUser: adv4@gmail.com,,(19)>, <CustomUser: adv5@gmail.com,,(20)>, <CustomUser: ok@gmail.com,,(33)>, <CustomUser: pub_company1@gmail.com,,(34)>, <CustomUser: ,,(35)>, <CustomUser: employee1@gmail.com,,(40)>, <CustomUser: employeeno1@gmail.com,,(41)>, <CustomUser: adv500@gmail.com,,(42)>]>



In [18]: CustomUser.objects
Out[18]: <django.db.models.manager.Manager at 0x7ff0906fa1d0>

所以我的问题是,当我们想使用一个特定的db时,只要我们使用()应用函数,我们就会看到整个queryset。另一方面,使用它通常就像使用CustomUser.objects一样,除非我们应用过滤器,否则它不会返回queryset

那么,这是否意味着对于一个特定的数据库,我们能够看到整个查询集,然后我们必须应用过滤器才能快速进行查询。实际上,我很困惑,如果“default db”和“company1 db”中没有相同的记录,并且数据完全相同,会有什么区别, 一个查询是否比第二个查询快


Tags: incomdbobjectsmodelsoutgmailqueryset
1条回答
网友
1楼 · 发布于 2024-05-19 01:48:14

不,这里没有区别using返回查询集,就像all一样。您可以对其中任何一个进行过滤,而无需执行查询,直到您对其进行迭代

相关问题 更多 >

    热门问题