一个表里有1千万的数据,想在一个字段上加一个唯一结束,直接alter table会特别特别慢的,有没有什么别的办法?或者谁有过类似的经验,分享一下!非常感谢!

解决方案 »

  1.   

    创建一个新表,然后再把旧表中数据 insert into newTable select * from oldTable, 然后再删除旧表,把新表更名。
      

  2.   

    我用20w数据测试了一下,用了32ms,估计1千万怎么也得半个小时吧。
    影响的数据栏: 203495
    时间: 32.391ms
      

  3.   


    你啥服务器啊,我的pc机器,4G内存,4核的,2000数据,62秒搞定了。
      

  4.   

    表里暂时有1百多万数据,我直接执行的alter table tablename add unique(f_uid);
    影响的数据栏: 1265737
    时间: 374.203ms
    1楼的说法也许也可行,但我没有进行测试。
    感谢大家的帮助!