我正在尝试尽可能减少应用中部分数据库点击次数,因为它们会对性能产生负面影响。
我使用QuerySet
,filter
,exclude
对象等任何Q
操作对给定玩家的一系列匹配进行各种过滤......
player.game_set.filter(Q1)
player.game_set.filter(Q2)
player.game_set.exclude(Q3)
每次执行任何QuerySet
个集合时,都会遇到数据库。
我想知道我是否可以执行以下操作:只需点击数据库一次,即可获得玩家游戏的超集:
player.game_set.all()
然后过滤缓存 QuerySet
,但仍然使用QuerySet
,filter
和exclude
对象等Q
操作。这些将作用于缓存的player.game_set.all()
而不是每次都击中基地。
可以这样做吗?