2015-07-03 79 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;