Django REST Framework千万级数据量拆表实践
场景
产品基于Django rest framework、Mysql开发。随着产品发展,部分模型数据量日益增涨,每月达到千万级数据,严重影响性能。 这里以项目实际场景中的Order(订单表)来展开 需求: 1、基本查询,查看历史订单。 2、看板输出,查看每天销售情况,计算订单表中的金额、成本、毛利等字段。
方案分析
性能下降一方面是数据量过大,另一方面是该表承担着频繁的计算请求。以Django对Order(订单表)金额字段计算为例
result = models.Order.objects.filter(pk='test',time__gte='2022-01-01').aggregate(total_money=SUM('money'))
数据库中实际执行的sql
SELECT SUM(money) From Order where pk='test' AND time>='2022-01-01'
共有 0 条评论