SELECT
cms.id uid, cms.username, cms.nickname, cms.type, count(*) num_member
FROM
yz_customer_service
cms
INNER JOIN
yz_customer_service_member
cm
ON
cms
.id
=cm
.customer_service_id
WHERE
cms
.create_time
BETWEEN '1695000000' AND '1700496000' GROUP BY cms.id;
create_time 有没有索引 type 一直都是 index
如果把 GROUP BY 去掉的话 type 直接 ALL 了……
1
UnrealEngine OP |
2
txzhanghuan 2023-11-21 19:42:18 +08:00
时间去掉引号试试
|
3
UnrealEngine OP @txzhanghuan #2 不行……
|
4
wooyulin 2023-11-21 20:08:24 +08:00 1
索引是怎么建的,时间的区分度打不打,数据量怎么样。
1 、groupBy id 可能走 主键索引更有优势 1 、涉及回表,mysql 不一定会走 create_time 索引 |
5
wooyulin 2023-11-21 20:11:01 +08:00 1
把 cms.username, cms.nickname, cms.type 去掉对比一下
|
6
dyv9 341 天前 via Android
表里有多少数据呀?数据量少时索引有没有差别不大,用索引返回的值接近表的量级时索引反而浪费时间,因为拿着所有钥匙逐个开门查房比每次跑前台拿一把钥匙查房再回去前台拿下一个房间钥匙快得多。
|