我有两张桌子:
CREATE TABLE `test_sample` (
`idtest_sample` varchar(50) NOT NULL,
`test_samplecol` varchar(45) DEFAULT NULL,
UNIQUE KEY `idtest_sample_UNIQUE` (`idtest_sample`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
和
CREATE TABLE `new_table` (
`idnew_table` int(11) NOT NULL,
UNIQUE KEY `idnew_table_UNIQUE` (`idnew_table`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
第一个表包含 500 万条记录,而第二个表只有 10 条记录。
此查询的执行时间超过 5 秒:
SELECT * FROM test_sample
INNER JOIN new_table
ON test_sample.idtest_sample = new_table.idnew_table
虽然此查询立即执行(少于 0.001 秒):
SELECT * FROM test_sample
WHERE test_sample.idtest_sample IN
('3','1597','25963','170596','196485',
'545963','999999','1265896','1569485','1999999')
为什么第一个查询需要这么长时间?