下面的查询只花了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子句。创建一个临时表,然后对它进行连接。复制临时表时要小心,很可能不需要复制它,而且它可能会导致延迟。