开发者社区> 问答> 正文

快速转换mysql表的存储类型问题

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

展开
收起
落地花开啦 2016-02-01 17:18:44 2237 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

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

    1. myisam_sort_buffer_size MySQL会在REPAIR TABLE索引排序或者使用ALTER TABLE/CREATE INDEX创建索引的时候申请缓冲的大小。
    2. 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的方式则不行。
    2019-07-17 18:37:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像