库里单表 tb_task 5000w
SELECT
is_deleted,
data_type,
COUNT(*)
FROM
tb_task
GROUP BY
is_deleted,
data_type
is_deleted data_type COUNT(*)
0 0 ---701
0 1 ---10
0 2 --- 2575
0 127 --- 50000011
SELECT COUNT(*) FROM tb_task WHERE is_deleted = 0 AND data_type != 1
没有加索引 idx (`data_type`, `is_deleted` )时, 要 60 秒
加了 idx (`data_type`, `is_deleted` )时, 这条 sql 会走索引 变成 17 秒
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE tb_task range idx_data_type_is_deleted idx_data_type_is_deleted 2 24671413 10.00 Using where; Using index
这是为啥,不是说区分度不高的列上加索引 ,查询效率不明显吗
SELECT
is_deleted,
data_type,
COUNT(*)
FROM
tb_task
GROUP BY
is_deleted,
data_type
is_deleted data_type COUNT(*)
0 0 ---701
0 1 ---10
0 2 --- 2575
0 127 --- 50000011
SELECT COUNT(*) FROM tb_task WHERE is_deleted = 0 AND data_type != 1
没有加索引 idx (`data_type`, `is_deleted` )时, 要 60 秒
加了 idx (`data_type`, `is_deleted` )时, 这条 sql 会走索引 变成 17 秒
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE tb_task range idx_data_type_is_deleted idx_data_type_is_deleted 2 24671413 10.00 Using where; Using index
这是为啥,不是说区分度不高的列上加索引 ,查询效率不明显吗