体系里这个同时查冷热表的sql,动动手指,从12s降到3s ...

打印 上一主题 下一主题

主题 1545|帖子 1545|积分 4635

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 体系将交易数据按交易时间分为热表(最近3个月)和冷表(3个月前)。为保证用户体验,当企业门户端查询超过冷热表时,尤其针对大客户,查询性能优化至关重要。以下是程序的SQL查询语句及其优化版本。
 
体系里的交易数据按交易时间做了冷热表分离(热表仅存储最近3个月的交易数据,3个月前的交易数据自动结转至冷表),我们内部运营体系的交易查询功能举行了冷热数据分开查询。
然后企业客户端呢,为了不影响用户体验,企业门户端的交易查询功能,当选择的查询时间段同时涉及到冷热表时,需要union(合并)两表举行数据查询。这时,尤其是针对那些交易量比力大的客户来说,在查询性能上我们就要做一些努力。
上sql

[code]select  count(*) as orderNum,  IFNULL(sum(amount), 0) as totalAmt,  SUM(CASE WHEN order_status = 'SUCCESS' THEN amount ELSE 0 END) as totalSuccessAmt,  SUM(CASE WHEN order_status = 'FAIL' THEN amount ELSE 0 END) as totalFailAmtfrom  (    select      *    from      order_detail    WHERE      enterprise_id = 1655100723787649      and create_time >= '2024-02-04 00:00:00'      and create_time = '2024-02-04 00:00:00'      and create_time = '2024-02-04 00:00:00'  and create_time = '2024-02-04 00:00:00'  and create_time
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表