报表统计设计

针对数据量庞大的系统,报表统计设计需要考虑性能优化。通过新建统计表与业务表分离,减少对业务表的直接查询压力。每日凌晨定时将前一天业务表数据同步至统计表,确保数据的滞后性。同时,采用全量+增量策略,全量数据为历史统计,增量数据存储在缓存中,实现实时查询。这种方法有效解决了大规模数据统计的效率问题。
摘要由CSDN通过智能技术生成

        很多系统都会报表统计模块,对于数据量小的系统来说,写个sql语句加个索引就可以解决。但数据量庞大、操作频繁的表,这么整肯定会有问题的。那么,如何做报表设计,这边提供一个比较老套通用的思路。

 

一.新增一个统计表,与业务部分开。

         为啥弄个统计表,大家一想就知道。数据较庞大(千万),我们过多去统计数量或者其他,肯定会影响很吃性能,如果用的人很多那就更不用说了。加索引也没法避免count查询,有的统计根据年统计,然后到全公司或者部门,count数量大,也是很慢的。

例如:这个是客户的跟进记录表,数量22741748条,在数据库没有其他查询的情况下,查询全公司一年的跟进count数,约0.7秒。

CREATE TABLE `crm_follow` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `user_id` int(11) DEFAULT NULL COMMENT '跟进人,默认为自己',
  `customer_id` bigint(20) DEFAULT NULL COMMENT '客户的联系人ID',
  `topic_id` bigint(20) DEFAULT NULL COMMENT '主题ID',
  `type` int(11) DEFAULT NULL COMMENT '跟进方式:1.去电  2.来电  3.email  4.IM  5.上门拜访',
  `status` int(5) DEFAULT NULL COMMENT '跟进状态,从字典获取',
  `next_flow_time` datetime DEFAULT NULL COMMENT '下次跟进时间',
  `flow_count` int(11) DEFAULT NULL COMMENT '当前跟进次数(第几次跟进)',
  `ec_date` datetime DEFAULT NULL COMMENT '预计成交日期',
  `is_assist` tinyint(1) DEFAULT NULL COMMENT '0:否,1:是,是否协助',
  `assister` int(11) DEFAULT NULL COMMENT '协助人',
  `content` varchar(500) DEFAULT NULL COMMENT '跟进细项',
  `remarks` varchar(200) DEFAULT NULL COMMENT '备注',
  `create_user` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `modify_user` varchar(50) DEFAULT NULL COMMENT '修改人',
  `modify_time` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `user_id` (`user_id`),
  KEY `customer_id` (`customer_id`),
  KEY `next_flow_time` (`next_flow_time`),
  KEY `assister` (`assister`),
  KEY `create_time` (`create_time`)
) ENGINE=InnoDB AUTO_INCREMENT=107874820 DEFAULT CHARSET=utf8 COMMENT='记录客户根据信息';

这个库还是我一个人使用的情况下,而且还是统计一年的、单一业务,如果五年内的查出来,拿岂不是很慢? 

二.定时统计,每天凌晨统计昨天的数据,将业务表里面的数据记录到统计表里。

        当然统计表,只做统计,业务新增的数据用定时处理,无需时时更新。因为业务表新增/删除数据,统计表也新增/删除&#x

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值