mysql修改表引擎
mysql表引擎决定着表数据的存储结构,如果建表当初没能预算到表后期的用途,那么中途就必须面临换表引擎的痛苦,这里对mysql表从myisam转换到innodb做了个试验。根据google的结果,换表结构主要有两种方案:
1、alter table test engine = innodb;
这种方案的优点是操作简单,一条语句,让mysql帮你转储临时表,重建新表入库。
2、导出数据,重建新表;
利用source导出表数据,从show create table test修改表引擎后建立新表,再把数据导到新表。
试验用的是方案一,结果是3000w的数量级数据修改了120min+,建了个索引耗时2min+,可见效率一般,另外需要注意的是方案一会锁表,方案二如果在同时插入的状态下也不会根据mysql锁粒度也不会到处后期新插入的数据,所以如果是线上的表则要考虑新表双写等方案
linux跟踪利器–strace 请求体超载–413与414