有人能解释下几句sql效率差异的原因吗? 特别是d和b原始表a 1600w数据,有7个字段,去重后1100w左右,分别用如下几种方式去重create table b like a;
a:  insert into b select distinct * from a耗时22分钟左右b: insert into b select * from a group a.* order by null;
耗时22分钟左右
c:  b表创建主键
insert ignore into b select * from a 
耗时 16分钟d: alter table b add column cou int;insert into b select *, count(1)  from a group a.* order by null;
耗时11分钟。

解决方案 »

  1.   

    去重:标准是什么
    你的SQL语句不是标准的SQL语句
      

  2.   

    7个字段不完全相同,
    不是标准sql?? 
    除了group by字句懒得7个字段都写出来,其他都是可以直接运行的。
      

  3.   

    执行5遍,时间有所波动,不同sql执行的耗时基本和描述的是相同比例
      

  4.   

    你的实践结果已经说明了一切,d: alter table b add column cou int;insert into b select *, count(1)  from a group a.* order by null;
    耗时11分钟。
    这个显然最快。
      

  5.   


    我想知道原因,为什么加了count(1)就快了那么多。
    执行计划看上去没什么差别。