暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL在线删除大表

戏水蓝鲸 2017-05-10
326

在线删除大表会占用系统io能力,进而导致mysql进程阻塞和主从延时,解决方案如下:做硬链接

  1. ln wx_edu_answerredo.ibd wx_edu_answerredo.ibd.bak

  2. 数据库中删除表

    drop table wx_edu_answerredo

  3. truncate循环删除磁盘文件,通过sleep控制io负载


脚本内容:

#!/bin/bash

#####################################################################

#@@@ Author      : bluewhalew(playful_bluewhale@hotmail.com)

#@@@ Name        : Rmbigtab.sh 

#@@@ Describe    : remove big table online

#@@@ Created  in : 20150421

#@@@ Modified in : 20150421

#####################################################################

TRUNCATE=/usr/bin/truncate

for i in `seq 97340 -100 10 `;

do 

        sleep 1

        echo "$TRUNCATE -s ${i}M /data/mysql_ss/data/susuan/wx_edu_answerredo.ibd.bak"

        $TRUNCATE -s ${i}M /data/mysql_ss/data/susuan/wx_edu_answerredo.ibd.bak

done


文章转载自戏水蓝鲸,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论