生产环境中正在运行的 MySQL,引擎由 myisam 突然改成 innodb 有什么后果?

2020-09-27 09:00:23 +08:00
 kisshere

因为要定期备份 MySQL,mysqldump 在 myisam 引擎下,貌似--lock-tables=false 始终不起作用,而 innodb 我测试了此参数有作用,所以想切换至 innodb,会有什么后果?

3178 次点击
所在节点    程序员
10 条回复
jason56
2020-09-27 09:15:33 +08:00
innobackupex 不香?
ritaswc
2020-09-27 09:44:33 +08:00
不确定,超出我的知识范畴
Cbdy
2020-09-27 09:47:51 +08:00
表可能会丢失一些索引之类的东西吧,然后会有很多 IO,数据多的话估计会很慢
phpfpm
2020-09-27 09:50:17 +08:00
pt-online
learningman
2020-09-27 09:58:41 +08:00
拿备份试吧,没见过玩生产数据库的。。。
vus520
2020-09-27 10:14:13 +08:00
有多大量啊朋友?

感觉为了备份就想换引擎,感觉生产的量也不大,量不大,那就随便操。
zppass
2020-09-27 10:25:04 +08:00
这个 innodb 不是从 5 点几版本就开始默认作为引擎吗。真的要换,要想该注意备份,注意单独搞一个做一下演练,不要直接开干,新的没啥问题再切换数据库,而不是直接在原来的库上开搞,还有就是这段时间内的数据迁移。

还有就是查看之前采用的 MySQL 版本,旧的版本不是默认支持的无所谓,使用新的版本还设置 myisam 要问一下到底是为了啥
wysnylc
2020-09-27 11:39:36 +08:00
只能说,确实作死
nomansky
2020-09-27 13:49:51 +08:00
要切换表的引擎等于重建表,索引,数据,触发器等等都要重新建立,主要的重建时间在于数据的迁移阶段。用 pt 做这个事比原生的 ddl online 好些。pt 主要是建立新表,然后插入数据,最后删除旧表并重命名新表。至于有什么影响,主要在于你的业务需求,比如你业务有用到 myisam 的特性而 innodb 没有这个,自然会有影响,否则没啥问题。
recall704
2020-09-27 21:19:45 +08:00
会增加磁盘使用空间,其它不知道了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/710776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX