我正在尝试运行一个使用从另一个查询中提取的ID列表的查询。每个单独的查询都足够快,可以达到我的目的(0.5秒以内)但合并后的查询非常慢。
第一个查询是获取ID列表,需要0.2秒:
select distinct column1
from table1 where id in
(select id from table2 where match(column3) against('keyword' in boolean mode))
limit 10000000;
第二个查询,现在使用id列表,从第一个查询手动解析,需要0.16秒:
select * from table3 where id in (
-- list of ids parsed manually
) limit 10000000;
但是当我将两个查询组合在一起时,它会运行超过6分钟。这是组合查询:
select * from table3 where id in (
select distinct column
from table1 where id in
(select id from table2 where match(column3) against('keyword' in boolean mode))
) limit 10000000;
我错过了什么?