+ -
当前位置:首页 → 问答吧 → insert_select性能问题

insert_select性能问题

时间:2011-07-20

来源:互联网

使用的测试数据库是mysql官网的:employees。
想用memory引擎的表,来保存一个查询子集,如下:(salaries总共有2800000条,salary没有索引)
create table t4(id int,index using hash(id))engine=memory;
insert into t4(id) select emp_no from salaries where salary=90930;
执行insert操作,发现不管后面的子查询结果集为多大,整个insert 操作都要用4sec多。
当我单独把后面的select emp_no from salaries where salary=90930,拿来执行发现所用的时间
为2sec左右。那么这个就否可以说明前面的insert 操作用了另外2sec,但是这个insert其实可能只
insert 10几条记录。这个是为什么呢?查询是比较慢,但insert应该不至于。
所以我又测试了另外一种情况:(300000条,emp_no是索引)
insert into t4(id) select emp_no from employees;
该过程总共才用了1sec左右。
这是为什么?哪位同学帮忙解释一下。谢谢!

作者: 项仲_TB   发布时间: 2011-07-20

自己顶一下。

作者: 项仲_TB   发布时间: 2011-07-21