Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 嵌套查询比单个查询慢得多_Mysql_Sql - Fatal编程技术网

Mysql 嵌套查询比单个查询慢得多

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; 第二个查询现在使用

我正在尝试运行一个使用从另一个查询中提取的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;

我错过了什么

我不确定我是否知道如何加速这些精确的查询。但是如果你能将它们重新表述为一系列的连接,你也许可以使用索引。好吧,对我来说,实际的查询已经足够快了。问题出在第一个嵌套在第二个嵌套中。我不知道如何加速这些精确的查询。但是如果你能将它们重新表述为一系列的连接,你也许可以使用索引。好吧,对我来说,实际的查询已经足够快了。是第一个在第二个里面的嵌套造成了问题。