1. 程式人生 > 其它 >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` )

新增成功之後查詢發現沒有實質性的效果。

EXPLAINselect a.id,a.name,b.start_time ... from aleft joinb ona.code=b.code where b.delete_flag=0 order by a.id

發現索引沒有生效,將where b.delete_flag 改為 and b.delete_flag b表條件放到on 後面用and 索引才生效。

最後查詢響應時間只需要一點幾秒。