2015-06-09 61 views
0

下面的查询上太多的时间恰好出现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,只是想知道这是否是一个错误。

+0

尝试创建覆盖索引为'alter table TABLE1 add index col1_col2_idx(col1,col2)'..假设ID是主键,然后查看性能。 –

回答

0

这是mysql的一个常见限制,建议不要使用大的IN子句。创建一个临时表,然后加入它。注意复制临时表,很可能不需要复制临时表,并且会导致滞后。