mysql数据库优化之sql优化

it2022-05-05  257

1.exists 和 in 使用区别和效率

1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;

T1数据量小而T2数据量非常大时,T1<<T2 时,1)的查询效率高。

2) select * from T1 where T1.a in (select T2.a from T2) ;

T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。

综合以上对IN/EXISTS的讨论,我们可以得出一个基本通用的结论:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

 

2.between and效率应该比in高

 

3.union和 union 使用区别和效率

union all 和 union 合并表数据

union all 效率大于 union

union all 不去重

union 会自动去重


最新回复(0)