将主表 myisam存储引擎改为innodb存储引擎,需要修改哪些mysql相关innodb配置信息?
描述:我们线上数据库结构:1主3从,所有的表都是myisam存储引擎,我现在只想把一张主表引擎更改为innodb存储引擎。主表的数据量300W。
问题1:我打算使用gh-ost修改存储引擎,应该没有问题吧?(由于主表中有触发器,所以放弃使用gt-osc修改)
问题2:主表修改完之后,那么肯定需要配置mysql相关innodb配置信息,具体需要哪些配置信息?
问题3:同一个数据库中,既有innodb存储引擎,又有myisam存储引擎,需要注意什么地方,会不会有问题?
第一步查看表的存储引擎
mysql> show create table test;
第二部查看表的数据量
mysql> select count(1) from test;
第三步
方法一:
直接更改存储引擎
mysql> alter table test engine=innodb;
方法二:
1、创建个和test同样表结构的表
2、test_tmp作为中间结果集
mysql> insert into test_tmp select * from test;
3、删除原表的数据
mysql> truncate table test;
4、这回更改原表的存储引擎
mysql> alter table tt7 engine=innodb;
5、再把中间结果集的数据导回原表中
mysql> insert into test select * from test_tmp;
6、删除中间表
mysql> drop table test_tmp;
你第二个问题要根据版本定参数配置,低版本和最新版本的配置差别太大,在这里没法给你具体答案。上边的步骤你可以参考。
还有一个数据库中只是某些表改变了存储引擎,不会对整个数据库有什么影响,除非你的应用对这个表有特殊的要求。