MySQL-如何快速转换mysql表的存储类型?

发布于 2016-11-30 05:33:58 字数 41 浏览 1149 评论 3

对于一个数据量很大的表,需要转换一下表的存储类型,有什么高效的办法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜柠檬 2017-10-20 17:39:00

1:alter table 表名 ENGINE= 引擎
2:建立一个你要转换的引擎空表,将老表数据导过去

虐人心 2017-05-23 23:19:30

mysql_convert_table_format

mysql_convert_table_format converts the tables in a database to use a particular storage engine (MyISAM by default)

官方介绍:http://dev.mysql.com/doc/refman/5.1/en/mysql-convert-table-format.html

归属感 2017-05-12 20:29:22

MySQL 5.x 起,有自带PERL批量转换MYSQL的表的引擎的工具mysql_convert_table_format,直接转换有命令alter table 表名 ENGINE= 引擎,另外可以建立新表,将数据导过去,我补充几条在大数据量的时候转换表引擎的方法:
1.如果使用ALTER TABLE命令,对于MyISAM表,增大如下的变量可以加快ALTER TABLE的执行过程:

a. myisam_sort_buffer_size MySQL会在REPAIR TABLE索引排序或者使用ALTER TABLE/CREATE INDEX创建索引的时候申请缓冲的大小。

b. myisam_max_sort_file_size MySQL在使用REPAIR TABLE/ALTER TABLE/LOAD DATA重建MyISAM索引的时候允许申请的最大临时文件的大小,如果超过这个大小,MySQL将会使用很慢的key cache。

2.在数据量比较大的时候,采用dump data,建立一个新引擎的新表,然后再import data的方式来修改表引擎的方式,会比ALTER TABLE快很多,当然这要看具体的应用,因为ALTER TABLE的过程中,可以提供继续read, 而采用dump data的方式则不行。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文