修改表存储引擎的方法
1. 查看表的当前存储引擎
SHOW CREATE TABLE <表名> \G
或
SHOW TABLE STATUS LIKE '<表名>' \G
2. 修改单个表的存储引擎
ALTER TABLE <表名> ENGINE=<存储引擎名>;
示例:将student表从InnoDB改为MyISAM
修改前查看
SHOW CREATE TABLE student \G
执行修改
ALTER TABLE student ENGINE=MyISAM;
修改后验证
SHOW CREATE TABLE student \G
修改默认存储引擎的方法
1. 临时修改(仅当前会话有效)
SET default_storage_engine=<存储引擎名>;
2. 永久修改(需修改配置文件)
1. 编辑MySQL配置文件(my.cnf或my.ini)
2. 在[mysqld]部分添加:
default-storage-engine=<存储引擎名>
3. 重启MySQL服务使更改生效
注意事项
1. 引擎转换影响:
大表转换可能需要较长时间
某些特性可能丢失(如InnoDB转MyISAM会丢失事务支持)
2. 兼容性问题:
检查表是否使用了原引擎特有功能
外键约束在非InnoDB引擎中不被支持
3. 性能考虑:
生产环境修改前应在测试环境评估性能影响
考虑在低峰期执行大表引擎转换
4. 权限要求:
需要ALTER权限才能修改表引擎
常用存储引擎选择建议
需求场景 推荐引擎
需要事务支持 InnoDB
高并发读写 InnoDB
只读或读多写少 MyISAM
需要全文搜索(MySQL<5.6) MyISAM
临时数据/高速缓存 MEMORY
日志归档 Archive
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程