mysql数据库中查询优化

在我们使用传统数据库Mysql时,会有许多查询性能低下。而这个问题在当前许多分布式及商业数据库中,查询性能低下的事件并不多见了 。在这里讲一下当前开发中遇到的in条件和join条件查询性能的区别

一、使用in条件进行查询

select wtime,sum(f20)/100000000 from stock_info.ads_all_stockt_info where name in (select name from outside_data.cfg_plate_type where plate = '医药商业') group by wtime;

这条语句执行了大约10分钟,而子查询结果约30条数据,在不做group by之间,查询出来的结果表中只有不到一万条数据,但是做group by需要花费约10分钟的时间

二、使用join条件进行查询

select a.wtime,sum(a.f20) from stock_info.ads_all_stockt_info a inner join stock_info.cfg_plate_type b 
on a.name = b.name and b.plate = '医药商业'
group by wtime

两条语句进行同样的操作,而第二条语句的执行只花费了7秒钟。所以后续的开发中,in条件还是要尽量少使用,如果是自己搭建的单机环境。当然,如果是商用的分布式数据库,或是大型数据库,则基本不会存在这个问题。

你可能感兴趣的:(mysql,数据库,sql)