2015-07-03 78 views
0

我有以下查詢:MySQL的左連接是用空行慢

Select a.field1,a.field2, b.field3, c.field4 from a 
left join b on b. field3=a.field3 
left join c on c.field4= b.field4 

b.field3,b.field4,c.field4和a.field3的鍵alreay設置。

b空時速度非常慢。

任何想法?

+1

怎麼樣在'B(場3)和C(字段4)添加索引'如果尚未完成。 –

+0

b和c上的a和b和field4上的field3的字段類型是否相同? (即,具有相同長度的INT或兩者的VARCHAR)。 – virmaior

+0

@virmaior,字段類型是相同的。 – fkingan

回答

0

這是一個已知的MySQL錯誤:

https://bugs.mysql.com/bug.php?id=69721

如果您用optimizer_switch查詢= 'block_nested_loop = OFF',它立即結束。

試試這個:

set optimizer_switch='block_nested_loop=off'; 
Select a.field1,a.field2, b.field3, c.field4 from a 
left join b on b. field3=a.field3 
left join c on c.field4= b.field4;