诺亚方舟

沉淀

mysql修改表引擎

mysql表引擎决定着表数据的存储结构,如果建表当初没能预算到表后期的用途,那么中途就必须面临换表引擎的痛苦,这里对mysql表从myisam转换到innodb做了个试验。根据google的结果,换表结构主要有两种方案:

1、alter table test engine = innodb;

这种方案的优点是操作简单,一条语句,让mysql帮你转储临时表,重建新表入库。

2、导出数据,重建新表;

利用source导出表数据,从show create table test修改表引擎后建立新表,再把数据导到新表。

试验用的是方案一,结果是3000w的数量级数据修改了120min+,建了个索引耗时2min+,可见效率一般,另外需要注意的是方案一会锁表,方案二如果在同时插入的状态下也不会根据mysql锁粒度也不会到处后期新插入的数据,所以如果是线上的表则要考虑新表双写等方案

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>