2017-01-19 38 views
0

我有一个MySQL查询该是这样的(我已经简化它)替代在查询列表的MySQL

Select A.a ,B.b 
from A,B 
where 
A.c = B.c 
and A.d in (100,121,134,155,132...) 

通常有在IN条件约1000个条目。考虑到MySQL中的IN性能不好,是否有办法加快速度?

+2

把名单在临时表和'Join'与您的查询。还开始使用'INNER JOIN'而不是旧式的折旧逗号分隔连接 –

+0

'A.d'上是否有索引? –

+0

并且不要使用逗号样式JOINs – Strawberry

回答

-1

如果您有A.D列(比如说X到Y)特定范围,可以试试这个:

SELECT A.a, B.b FROM A 
JOIN B ON 
A.c = B.c 
WHERE A.d BETWEEN x AND y; 
+1

对于另一个问题,这是一个很好的答案 – Strawberry