项目中的SQL性能的优化?

前两天遇到一个有意思的问题,后台管理有一个查询,足足查询有30多秒,页面一直不出数据,上级叫我优化一下,

然后一直看到SQL层,下面是我做的一个实验:

项目中的SQL性能的优化?

 

项目中的SQL性能的优化?

 

可以看到,同样一条SQL用inner join 比用left join 快了30.40倍不止。

经过自己的研究,现在解释一下这个问题:

假如现在有A表100万条数据,B表一条数据,

假如用left join 那么会先查询出A表的100万条数据,再查询出B表的一条。

假如用inner join 那么会先查询出A 表的一条,再查询B表的一条数据匹配A表的一条数据,

最后只显示出一条数据,速度显而易见!!!

 

然后问题就这样解决了!!!