where in 里条件疑问
1、表m1中有字段 key_id,total_sqm,processing_number等字段,需要统计,
select sum(total_sqm) as sqm from m1
where processing_number in ('60','70','80','120','140','150')
2、如果m1表上有几十万条数据,其中'70','120','150','80','140','60'现在的频率差别较大,
'70'--》10%,'80'-->70%,其他占20%
3、如果in条件里写的顺序没有按数据出现的频率的写,是否对效率有影响? 请教。
------解决方案--------------------在一个in里面的话,顺序没影响
------解决方案--------------------不影响。
in的本质就是
join (select x='11' union all select '22' unino ....) b
on processing_number=x
------解决方案--------------------另外:
1、表m1中有字段 key_id,total_sqm,processing_number等字段,需要统计,
select sum(total_sqm) as sqm from m1
where processing_number in ('60','70','80','120','140','150')
2、如果m1表上有几十万条数据,其中'70','120','150','80','140','60'现在的频率差别较大,
'70'--》10%,'80'-->70%,其他占20%
这种情况,就是全表扫描了,性能不会太好。
可以考虑建个索引,按照processing_number,total_sqm 字段建个符合索引,这样只需要扫描索引,速度应该会更快点