美文网首页MySQL
MySQL删除大表drop table

MySQL删除大表drop table

作者: Better朔 | 来源:发表于2018-04-27 14:02 被阅读193次

背景:在删除过大的表时,除了会导致DML和DDL阻塞之外,还会产生大量的IO,造成资源占用严重,影响正常的业务

前提:linux操作系统,MySQL数据库为独立表空间

思路:在独立表空间环境中,删除一个表体现在OS上则为删除一个表空间文件。所以在OS上使用硬链接,在删除表时,实际是删除硬链接,该操作能迅速完成,然后再在系统上进行文件的逐步删除

一、建立硬链接

    在OS上建立硬链接,例如表testbigfile,则在datadir下对应位置:

    ln testbigfile.ibd testbigfile.ibd.rm

    通过ll 显示的第二列可以看到有两个文件使用了这个链接,所以删除其中一个时,删除的只是链接(会使得MySQL删表时速度更快),只有在只有一个文件使用链接时,才是真正的删除

linux命令行ll -a 显示的内容

二、在MySQL中进行表的删除

    drop table bigtbdrop;

三、在操作系统删除硬链接文件

    由于突然删除上百GB的文件,同样会导致IO的占用,所以可以使用truncate工具进行递进删除,一次删除1GB;更好的做法是统计当前的IO使用资源,在空闲IO资源较多时,触发truncate的操作:

            truncate -s -1GB regtime.ibd

至此,则可删除大表,妈妈再也不用担心我的drop table啦

相关文章

  • Mysql删除大表更快的drop table办法

    Mysql删除大表更快的drop table办法 利用硬链接和truncate降低drop table对线上环境的...

  • mysql删除表备忘

    mysql删除数据表有以下几种情况 1. drop table table_name   删除表全部数据和表结构,...

  • Oracle基本SQL语句

    删除表:drop table 表名 修改表结构:删除列:alter table 表名 drop column 列名...

  • MySQL删除大表drop table

    背景:在删除过大的表时,除了会导致DML和DDL阻塞之外,还会产生大量的IO,造成资源占用严重,影响正常的业务 前...

  • 08.*MySQL 删除数据表*

    MySQL 删除数据表 1.在phpMyAdmin中运行: DROP TABLE ·table_name ;· 2...

  • MySql之删除数据

    删除表 drop table 表名或者drop table if exists 表名 delete语句 delet...

  • 2019-03-21

    -- 创建表 create TABLE -- 删除表 drop TABLE create TABLE test1(...

  • Oracle删除用户和表空间

    删除USER。 DROP USER XX CASCADE 删除表空间。 DROP TABLESPACE table...

  • MySQL之alter语句用法总结

    MySQL之alter语句用法总结 1:删除列 ALTER TABLE 【表名字】 DROP 【列名称】 2:增加...

  • Kudu操作sql

    -----删除表 DROP TABLE test1; -----删除试图 DROP VIEW test2; ---...

网友评论

    本文标题:MySQL删除大表drop table

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