为什么多表关联查询插入进另外张表比单表查询插入后再更新还要慢?

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:31:56
insert into c select a.column1,b.column2 from a b where a.id=b.id 两表id都建了索引 a表700万 b表100万
insert into c select a.column1 from a
再update c,b set c.column2=b.column2 where c.id=b.id c表id有索引
为什么第1种要170秒左右 第2种只要130秒左右? 我做数据仓库的 难道多表关联的查询还没单表1+单表2更新来的快?
我之前还试过第1种没有索引的 30分钟都没出数据

如果采用第2种方法应该没什么弊端吧?谢谢

呵呵,你自己都说了啊,第一个是关联的两个表,第二个就插入一个表。
你的表数据量大,关联会很慢,不过感觉应该也不会有这么长时间吧。。。
你这样,用查询分析器,,分析一下语句效率,看看什么地方构成表扫描了。表扫描会使效率很低。
第二种也没有什么弊端,不过效率当然不是最好的。