[sql 优化] 麻烦大佬看下这段 sql 怎么优化能快点
資深大佬 : zhaoxixiangban 3
CREATE TABLE `fx_share` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
`share_id` varchar(36) NOT NULL COMMENT ‘分享 ID’,
`share_channel_id` varchar(10) DEFAULT NULL COMMENT ‘分享渠道 ID’,
`aim_id` varchar(36) NOT NULL COMMENT ‘分享目标 ID’,
`share_url` varchar(255) DEFAULT NULL COMMENT ‘分享的链接’,
`share_user_id` varchar(36) NOT NULL COMMENT ‘分享发起人(导购)’,
`share_title` varchar(255) DEFAULT NULL COMMENT ‘分享的标题(预留字段)’,
`share_extra` varchar(255) DEFAULT NULL COMMENT ‘分享的参数(预留字段)’,
`watch_count` int(11) DEFAULT NULL COMMENT ‘浏览次数’,
`create_time` datetime NOT NULL COMMENT ‘创建时间’,
`update_time` datetime DEFAULT NULL COMMENT ‘更新时间’,
`deleted` tinyint(1) DEFAULT NULL COMMENT ‘删除:0 未删除,1 删除’,
`bind_status` varchar(5) DEFAULT ‘true’ COMMENT ‘绑定状态 用于顾客和导购绑定(为 0 时可以绑定,为 1 时不可以绑定)’,
PRIMARY KEY (`id`,`share_id`) USING BTREE,
UNIQUE KEY `unx_shareid` (`share_id`) USING BTREE,
KEY `idx_userid` (`share_user_id`) USING BTREE,
KEY `idx_aim` (`aim_id`) USING BTREE,
KEY `create_time_index` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=811316 DEFAULT CHARSET=utf8mb4 COMMENT=’分享表’;
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
`share_id` varchar(36) NOT NULL COMMENT ‘分享 ID’,
`share_channel_id` varchar(10) DEFAULT NULL COMMENT ‘分享渠道 ID’,
`aim_id` varchar(36) NOT NULL COMMENT ‘分享目标 ID’,
`share_url` varchar(255) DEFAULT NULL COMMENT ‘分享的链接’,
`share_user_id` varchar(36) NOT NULL COMMENT ‘分享发起人(导购)’,
`share_title` varchar(255) DEFAULT NULL COMMENT ‘分享的标题(预留字段)’,
`share_extra` varchar(255) DEFAULT NULL COMMENT ‘分享的参数(预留字段)’,
`watch_count` int(11) DEFAULT NULL COMMENT ‘浏览次数’,
`create_time` datetime NOT NULL COMMENT ‘创建时间’,
`update_time` datetime DEFAULT NULL COMMENT ‘更新时间’,
`deleted` tinyint(1) DEFAULT NULL COMMENT ‘删除:0 未删除,1 删除’,
`bind_status` varchar(5) DEFAULT ‘true’ COMMENT ‘绑定状态 用于顾客和导购绑定(为 0 时可以绑定,为 1 时不可以绑定)’,
PRIMARY KEY (`id`,`share_id`) USING BTREE,
UNIQUE KEY `unx_shareid` (`share_id`) USING BTREE,
KEY `idx_userid` (`share_user_id`) USING BTREE,
KEY `idx_aim` (`aim_id`) USING BTREE,
KEY `create_time_index` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=811316 DEFAULT CHARSET=utf8mb4 COMMENT=’分享表’;
EXPLAIN SELECT
`share_user_id` AS `shoppingGuideId`,
count( share_user_id ) AS `statisticNum`
FROM
fx_share FORCE INDEX(create_time_index)
WHERE
create_time > ‘2020-01-01 00:00:03’ AND create_time <‘2020-06-28 16:55:03’
GROUP BY
`shoppingGuideId`
大佬有話說 (21)