mysql表碎片回收

    技术2022-07-11  108

    1、alter table t engine = innodb;重建整个表,对于支持online ddl的版本(5.6开始支持),当线上进行操作的时候要调大innodb_online_alter_log_max_size参数,因为该参数会记录ddl过程中的dml操作,而此临时文件存放在临时排序区(innodb_sort_buffer_size),innodb_sort_buffer_size参数上限由innodb_online_alter_log_max_size参数决定。 2、optimize table t; 等价于ALTER TABLE … FORCE,适用于myisam表,当然innodb也可以用

    对于线上环境,建议使用gh-ost(原理是会以主从形式创建一个影子表)或者pt-osc(原理是使用触发器,创建一个新表进行)在业务低峰期进行操作

    Processed: 0.014, SQL: 9