美文网首页MySQL(总)
在线删除大表(完结)

在线删除大表(完结)

作者: 飞翔的Tallgeese | 来源:发表于2018-12-20 14:24 被阅读0次

几周之前搭建完anemometer之后并没有对其进行维护,最近查询中间库的空间时发现anemometer下面对应的slow_query_log库文件已经达到了127G之多

测试库上难得看到这么大的表,干脆用来实验一下在线删除大表


在线直接干58G的大表

直接在线上drop 58G的那张表,通过iostat -dxm 5可以看到画风是下图这样的

与此同时这个操作让中间库几乎是hang住了,连登陆都在等待

这个drop的操作持续了将近2分钟


正确姿势干70G大表

#进入到表空间路径下,制作硬连接

ln global_query_review_history.ibd global_query_review_history.ibd.h

ln global_query_review_history.frm global_query_review_history.frm.h

#登陆MySQL执行drop table,这里的操作是秒删

drop table global_query_review_history;

操作之后就只剩下硬链接了

如果用rm去删除的话,在高峰期还是会对I/O造成影响

采用truncate命令去删除大表(也可以选一个业务低峰期去rm硬链接)

truncate -s 0 global_query_review_history.ibd.h

truncate -s 0 global_query_review_history.frm.h


PS:truncate这个语法也挺恐怖的,跟rm一样危险而且我们日常使用比较少,之前参照野鸡文章的做法去执行了一下操作,测试库的所有文件都被削减了。

稳妥起见,建议在前一步做ln的时候,把硬链接做到一个单独的文件夹下,避免truncate的误操作

相关文章

  • 在线删除大表(完结)

    几周之前搭建完anemometer之后并没有对其进行维护,最近查询中间库的空间时发现anemometer下面对应的...

  • 1. 在线执行大表的DDL操作

    使用percona提供的工具进行大表的在线DDL操作,如添加字段、删除字段、修改字段属性等 原理 创建一个和原来表...

  • 基础数据结构和算法4:栈

    在线性表中,顺序表和链表可以访问任意位置结点,在任意位置插入和删除结点。栈和队列是对上述操作加以限制。 在线性表的...

  • 队列

    定义 队列是一种特殊的线性表,其插入和删除操作分别在线性表的两端进行,插入称为入队(enqueue),删除称为出兑...

  • SQL基础知识

    SQL在线测验工具:http://sqlfiddle.com/#!9/a6c585/1 表的修改插入删除 1、修改...

  • 大表数据安全删除

    背景有张记录表包含三千多万条历史记录,其中有一半以上数据为0,为0数据在业务上没有意义,其它表关联此表进行统计查询...

  • mysql大表在线ddl

    判断是否需要copy data https://www.cnblogs.com/zuoxingyu/archive...

  • MySQL:常规操作示例

    删除:DELETE、DROP、TRUNCATE DELETE 删除表内数据。 示例: DROP 删除表,包括表数据...

  • 线性表(顺序表,单链表)

    线性表是一种动态的数据结构,它的表长可以变化。线性表的功能主要是对存储在线性表中的数据进行检索,插入,删除等操作。...

  • 数据结构---栈与队列

    栈的基本概念及描述 栈是一种特殊的线性表,规定它的插人运算和删除运算均在线性表的同一端进行,进行插人和删除的那端称...

网友评论

    本文标题:在线删除大表(完结)

    本文链接:https://www.haomeiwen.com/subject/rptykqtx.html