在最优路径上花费了太多时间



下面的查询只花了0.04秒

SELECT A.* 
FROM  `TABLE1` 
JOIN TABLE2 ON ( TABLE1.ID = TABLE2.ID ) 
WHERE  `COL1` ='1'

而下一个查询已花费4秒

SELECT A.* FROM  `TABLE1` 
JOIN TABLE2 ON ( TABLE1.ID = TABLE2.ID ) 
WHERE  `COL1` ='1' and col2 not in (....ard 4k integers...P

和最大时间花费在统计(3秒+),这可能意味着寻找最优查询路径。

我正在使用MySQL 5.5.25,只是想知道这是否是一个错误。

这是mysql的一个常见限制,不建议使用大的IN子句。创建一个临时表,然后对它进行连接。复制临时表时要小心,很可能不需要复制它,而且它可能会导致延迟。

最新更新