有一个表.create tabel xx(
id1 varchar(20) not null,
id2 varchar(20) not null,
id3 varchar(20) not null,
id4 varchar(20) not null,
id5 varchar(20) not null,
id6 varchar(20) not null,
id7 varchar(20) not null,
id8 varchar(20) not null,
id9 varchar(20) not null,
id10 varchar(20) not null
)engine=innodb;这张表的数据量为1000W++ 行~1.我想改一下表的字段名.
2.还要增加一个字段.
3.增加一个联合主键.
要求:速度要求尽最可能的快....快....快...PS:
1.请 不要告诉换个16核的CPU跑.... 谢谢
2.请 不要告诉我去覆盖.frm文件 ...谢谢
最终表结构为:create tabel xx(
i1 varchar(20) not null,
i2 varchar(20) not null,
i3 varchar(20) not null,
i4 varchar(20) not null,
i5 varchar(20) not null,
i6 varchar(20) not null,
i7 varchar(20) not null,
i8 varchar(20) not null,
i9 varchar(20) not null,
i10 varchar(20) not null,
i11 varcahr(20) not null,
primary key (i1,i2,i3,i4,i5,i6)
)engine=innodb;
id1 varchar(20) not null,
id2 varchar(20) not null,
id3 varchar(20) not null,
id4 varchar(20) not null,
id5 varchar(20) not null,
id6 varchar(20) not null,
id7 varchar(20) not null,
id8 varchar(20) not null,
id9 varchar(20) not null,
id10 varchar(20) not null
)engine=innodb;这张表的数据量为1000W++ 行~1.我想改一下表的字段名.
2.还要增加一个字段.
3.增加一个联合主键.
要求:速度要求尽最可能的快....快....快...PS:
1.请 不要告诉换个16核的CPU跑.... 谢谢
2.请 不要告诉我去覆盖.frm文件 ...谢谢
最终表结构为:create tabel xx(
i1 varchar(20) not null,
i2 varchar(20) not null,
i3 varchar(20) not null,
i4 varchar(20) not null,
i5 varchar(20) not null,
i6 varchar(20) not null,
i7 varchar(20) not null,
i8 varchar(20) not null,
i9 varchar(20) not null,
i10 varchar(20) not null,
i11 varcahr(20) not null,
primary key (i1,i2,i3,i4,i5,i6)
)engine=innodb;
如果我去创建一个临时表,会比你这个方法快吗? 1.先关掉索引..
2.insert into test1 (select ....);
3.在开索引...请问ACMAIN_CHM 大哥,哪种方法比较快。
2. 复制数据到临时表
3. 删除原表
4. 更名临时表为原表名。时间主要的消耗在 "复制数据到临时表" 其它步骤的时间可以忽略不计。复制数据到临时表 这一步,影响时间的因素有,索引维护,数据插入,锁
create table newtt select i1,...i10, REPEAT(' ',20) as i11 from tt
再建立索引
create index newtt on tt(i1..i11)估计速度也快不到多少