背景
最近开始整理业务数据的指标体系,所以有一些表整理和指标生成的相关工作。在这个过程中遇到了一些SQL逻辑中的“using filesort”的问题,简单记录一下解决过程。
我做的这个指标是群聊业务的指标,这也是一个通用的业务场景。我们的App中有不同类型的聊天IM群,我需要统计不同类型的IM群每天总的群数量、新增的群数量和相应的聊天消息数。当然其中还有更多相关的指标,为了不涉及具体的业务详情,在这里不一一举出。
业务表和逻辑说明
- 群信息快照表
CREATE TABLE `group_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`date_time` datetime DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`group_id` varchar(64) DEFAULT NULL,
`custom_type` varchar(32) DEFAULT NULL,
`status` smallint(6) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `date_time` (`date_time`),
KEY `create_time` (`create_time`),
KEY `group_id` (`group_id`),
KEY `custom_type` (`custom_type`),
KEY `status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf