MySql教程

mysql left join优化 left join查询慢

本文主要是介绍mysql left join优化 left join查询慢,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

查询语句如下:select a.id,a.name,b.start_time ... from a left join b on a.code=b.code   where b.delete_flag=0 order by a.id

查询结果响应时间极慢花了20s ,其中a表数据50000条左右,b表数据不到五百条。

解决思路:查看两表关联字段字符集是否一致以及是否添加索引。

1.查看完字符集果然不一致。

 

 

 

 

修改一致后查询响应时间到了8、9s左右。

 

 

2.查看索引 mysql>show index from a;show index from b;发现都只有主键索引。

 

添加INDEX(普通索引) 

 

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 

添加成功之后查询发现没有实质性的效果。

EXPLAIN select a.id,a.name,b.start_time ... from a left join b on a.code=b.code   where b.delete_flag=0 order by a.id

 

 

 

 

发现索引没有生效,将where b.delete_flag 改为 and  b.delete_flag b表条件放到on 后面用and 索引才生效。

最后查询响应时间只需要一点几秒。

 

这篇关于mysql left join优化 left join查询慢的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!