mysql记录超300W条,修改表结构超时(增加2列),有什么好办法。查到可通过新建一个表,改好结构,导入旧数据的方法,但觉得时间上稍有些长。超时修改表结构,mysql

解决方案 »

  1.   

    1、导出到TXT文件,修改完后,再LOAD;
    2、试试
    create table newtt as
    select tt.*,新列1,新列2 from tt
      

  2.   

    最简单的方法就是直接用alter语句,但是会阻塞读写,阻塞时间看你的机器性能和表结构复杂度如果想在线更改表结构 需要用perconal的第三方工具pt-online-schema-changehttp://www.percona.com/doc/percona-toolkit/2.1/
      

  3.   

    看你的表结构,300W记录不算多,DDL在普通的服务器上有个1-2分钟也够了。在业务不繁忙的时候做alter table操作。如果你有MASTER-SLAVE结构,先在SLAVE上做,然后把APP切到SLAVE上,再改MASTER的
      

  4.   

    to zuoxingyu2012 ,谢谢先。确定在300W条记录上,做过alter table么?
    我试了,20多分钟,也没有反应。然后就ctr+c 了。当时大约有5-10人在使用数据库。
      

  5.   

    建议不要做alter tableALTER TABLE本质上MYSQL还是先创建一个新的表与原来表结构相同,然后添加需要的列,再复制数据。复制完成后删除旧表,再将临时表改名为原表名。
      

  6.   

    试试淘宝,或者PT的那个在线DDL的工具。