使用OR子句的MySQL JOIN查询非常慢 [英] MySql JOIN query with OR clause very slow

查看:526
本文介绍了使用OR子句的MySQL JOIN查询非常慢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下查询:

SELECT a.id, b.from, b.to FROM a INNER JOIN b ON a.id = b.from OR a.id = b.to;

,这非常慢.

如果我删除OR子句并分别运行每个查询,则两个查询将在1秒内执行.

If I remove the OR clause and run each query separately then the both queries execute under 1 second.

SELECT a.id, b.from, b.to FROM a INNER JOIN b ON a.id = b.from;
SELECT a.id, b.from, b.to FROM a INNER JOIN b ON a.id = b.to; 

如何加快原始查询(设置索引)的速度或重新设计查询本身?

How can I speed up the original query (set up indexes) or redesign the query itself?

推荐答案

使用并集怎么办?

SELECT a.id, b.from, b.to FROM a INNER JOIN b ON a.id=b.from
UNION
SELECT a.id, b.from, b.to FROM a INNER JOIN b ON a.id=b.to

这篇关于使用OR子句的MySQL JOIN查询非常慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆