修改表存储引擎的方法

 

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

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)