Mysql临时表select查询慢度
我正在myMysql临时表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
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分钟后还没有完成