===添加字段====
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 本人感觉这种方式太冒险,如果数据库主从备份要处理太多
建议不到万不得已还是稳妥一点。
思路还是上面的添加字段的思路!