我有一个做了这样的观点进行多重过滤不同时间的Django DB访问:优化,当你在一个基地的QuerySet被过滤的日期范围
objectBase = MyModel.objects.filter(startDate__range=(start,end))
automatedObjects = objectBase.filter(automated = True).count()
userCreatedObjects = objectBase.filter(userCreated = True).count()
bookObjects = objectBase.filter(subClass = 'book').count()
pageObjects = objectBase.filter(subClass = 'page').count()
allObjectsCount = objectBase.count()
我使用1.2.4和最新的Postgres
不管怎么说,我有大约20种不同的方式来过滤我过滤日期的objectBase,并且我注意到每个SQL查询按日期过滤。有没有更有效的方法使后续查询不必按日期过滤?会有速度差吗?
另外你认为什么是缓存objectBase查询的最佳方法,因为理论上它可以容纳数百或数千个过滤日期的对象以及可能的启动引擎,结束日期对于请求是相同的非常不可能。
好比说有人可以请求T4日期t1和t2,再后来要求T3之间的统计其中T1 < T3 < T2和T2 < T4,从而有一些重叠。有没有办法将它缓存起来,以便在需要访问数据库的请求之间有重叠?
对不起,如果这似乎是一个沉重的要求,但任何帮助,将不胜感激。