Mysql 嵌套查询比单个查询慢得多
我正在尝试运行一个使用从另一个查询中提取的ID列表的查询。对于我来说,每个查询都足够快(不到0.5秒),但是组合查询非常慢 第一个查询获取ID列表,需要0.2秒:Mysql 嵌套查询比单个查询慢得多,mysql,sql,Mysql,Sql,我正在尝试运行一个使用从另一个查询中提取的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; 第二个查询现在使用
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;
我错过了什么 我不确定我是否知道如何加速这些精确的查询。但是如果你能将它们重新表述为一系列的连接,你也许可以使用索引。好吧,对我来说,实际的查询已经足够快了。问题出在第一个嵌套在第二个嵌套中。我不知道如何加速这些精确的查询。但是如果你能将它们重新表述为一系列的连接,你也许可以使用索引。好吧,对我来说,实际的查询已经足够快了。是第一个在第二个里面的嵌套造成了问题。