记一次修改MYSQL表引擎的类型的过程
有一个日志表,看了一下接近900M,很大了,这种表用innodb完全是浪费,改成 MyISAM。执行命令
ALTER TABLE `security_access_log` ENGINE = MyISAM;
这里有个问题,执行的时候,发现超过30秒,命令中断了。
所以需要考虑当表内容多的时候,这个命令是需要消耗较长时间的。
Error Code: 2013. Lost connection to MySQL server during query
查了一下,发现这个问题是mysql workbench客户端导致的。
修改方式可以看这里。改为需要重新连接一次。
解决完上面的问题,又出现下面的错误。换一个存储类型还真是不容易。
Error Code: 1206. The total number of locks exceeds the lock table size
解决方法在这里。把 innodb_buffer_pool_size 参数改大一点。
show variables like "innodb_buffer_pool_size";
SET GLOBAL innodb_buffer_pool_size=83880608;
表结构变更,需要调整几个数据库参数。
根据自己系统配置修改如下参数,以加快变更速度(记得以前的值,一会还得改回来)
SET GLOBAL sort_buffer_size=64*1024*1024;
SET GLOBAL tmp_table_size=64*1024*1024;
SET GLOBAL read_buffer_size=32*1024*1024;
SET GLOBAL read_rnd_buffer_size=32*1024*1024;
参考链接:
(75条消息) mysql更改表引擎INNODB为MyISAM的方法总结_从心所愿的博客-CSDN博客_innodb转myisam
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)