【 使用环境 】测试环境,架构为1-1-1
【 OB or 其他组件 】
【 使用版本 】4.2.2
【问题描述】 查询逻辑主要是根据状态字段统计name的数据量,伪SQL:SELECT name, count(*) as num FROM test_a LEFT JOIN test_b ON test_a.key
= test_b
.key
WHERE test_a
.status
IN(0, 1) GROUP BY name LIMIT 10 ,发现查询很慢,基本是5分钟,如果吧status过滤条件去掉会 很快,秒级。
其中 test_a 表 4000W数据,test_b表30W数据。【没有分区,并行度设置的为12】
- 将test_a和test_b的schema发出来一下,show create table test_a;
- 将sql的explain信息发出来;
是不是status 等于0和1的数据很少(大部分是其他status值的数据),而又无法走status字段相关索引。
并行度设置为12, 有那么多的CPU 没???