大表添加字段、索引

本文介绍了一种适用于大型数据库表的高效字段添加方法,通过创建临时表、添加字段、数据迁移及重命名等步骤,有效避免了直接在原表上操作可能导致的长时间锁定问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

===添加字段====

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.youkuaiyun.com/qinning199/article/details/43760725 本人感觉这种方式太冒险,如果数据库主从备份要处理太多

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值