大表添加字段、索引

===添加字段====

1、添加字段:之前使用的一种方式

    ALTER TABLE table_A ADD column_A INT DEFAULT 0 COMMENT '测试数量'  AFTER LOG_FLAG ;

   备注:但是在大表,比如表数据量有千万条的时候,这个执行时间是长的是惊人的!所以不可行

 

2、 在实际的情况下。添加表字段要使用如下方式:

  ①、创建对应的的一个表格式复制(不要数据),切记一定要把原表中之前的索引都复制上;

 ②、在副本中添加字段

 ③、从原表中把数据拷贝到副表中

 ④、使用rename将原表和老表改名(这一步如果原表参与过存储过程,触发器等,一定要注意啊。防止存储过程中对应的表面也改变了!)

案例:

 /* 用户数据增加字段:人数量*/
 USE test;

  -- 创建副表
  CREATE TABLE account_tmp_bak LIKE account;

 --添加字段
  ALTER TABLE account_tmp_bak ADD count INT(11) DEFAULT 0 COMMENT '人数量' AFTER LOGIN_LOG_FLAG ;


  --复制数据 

  INSERT INTO account_tmp_bak(USER_ID,
   NAME,
   ADDR,
   PHONE,
   CREATE_TIME,
   LOGIN_LOG_FLAG
   FROM account;

  --重命名
  RENAME TABLE account TO account_old;

 --重命名
  RENAME TABLE account_tmp_bak TO account;

 --如果运行一段时间发现数据ok,可以删除掉
  /*  DROP TABLE account_old;  */

 

===添加索引===

首先应用一个高手的案例:http://blog.csdn.net/qinning199/article/details/43760725 本人感觉这种方式太冒险,如果数据库主从备份要处理太多

建议不到万不得已还是稳妥一点。

思路还是上面的添加字段的思路!

你可能感兴趣的:(MySQL)