我有一个用例,我有一些复杂的功能(涉及聚合),需要几秒钟才能运行,并影响应用程序的用户体验(即使行只有大约25-30k,相关字段是索引)。我正在考虑将聚合存储在数据库本身(并在夜间运行),因为数据的实时性在这里并不是非常重要。这是Django的常见做法吗?
(虽然我在SO上找不到很多讨论)
答案 0 :(得分:0)
您有多种选择:
@ittus和@Andrey Shipilov的方法:将结果存储在缓存系统中,如Memcache或redis。您可以查看github.com/niwinz/django-redis
@Anonymous的方法:使用某种物化视图(取决于你的数据库),然后在django中创建一个非托管模型来查询它。
为汇总数据创建新模型/字段,并通过django custom comand或芹菜任务每晚进行计算。
<强>结论:强>
<强>注意:强>