Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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临时表select查询慢度_Mysql_Sql_Database - Fatal编程技术网

Mysql临时表select查询慢度

Mysql临时表select查询慢度,mysql,sql,database,Mysql,Sql,Database,我正在mymysqldb中创建如下临时表 CREATE TEMPORARY TABLE test ( ic_id INT UNSIGNED ); 然后像这样只插入一个值 insert into test values (1527); 然后执行这个查询 SELECT Count(ai.id) FROM car_details AS cd, car_invoices AS ai, numbers AS pn WHERE cd.car_invoi

我正在my
mysql
db中创建如下临时表

CREATE TEMPORARY TABLE test  ( ic_id INT UNSIGNED );    
然后像这样只插入一个值

insert into test values (1527);
然后执行这个查询

SELECT Count(ai.id) 
FROM   car_details AS cd, 
       car_invoices AS ai, 
       numbers AS pn 
WHERE  cd.car_invoice_id = ai.id 
       AND cd.number_id = pn.id 
       AND cd.code = 'R' 
       AND ai.car_id IN (SELECT ic_id 
                         FROM   test); 
上面的查询执行起来需要很多时间,但没有临时表的后续查询执行起来非常快

SELECT Count(ai.id) 
FROM   car_details AS cd, 
       car_invoices AS ai, 
       numbers AS pn 
WHERE  cd.car_invoice_id = ai.id 
       AND cd.number_id = pn.id 
       AND cd.code = 'R' 
       AND ai.car_id IN ( 1527 );  
原因是什么

我的
max\u heap\u table\u size
是16777216,
tmp\u表大小为16777216

如何解决此问题


非常感谢。

ea之后。查询两种表类型,运行显示引擎INNODB状态;查看
创建的\u tmp\u磁盘\u表
选择\u范围
选择\u扫描
等是否有差异,然后报告。显示引擎INNODB状态;显示了一些信息,但我不知道你让我比较什么,你能解释一下吗,顺便说一句,我的第一个查询在7分钟后还没有完成