以下查询仅花费了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


而最大的时间是花在统计上(3sec +),这可能意味着寻找最佳查询路径。

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

最佳答案

这是mysql的常见限制,建议不要使用大型IN子句。创建一个临时表,然后针对它联接。在复制临时表时要小心,最有可能不需要复制它,这可能会导致延迟。

10-08 07:16
查看更多