• 快速删除大表


    利用创建硬链接的方式删除表

    查看表大小
    mysql> select a.FILE_NAME,a.TOTAL_EXTENTS*a.EXTENT_SIZE/1024/1024/1024 from information_schema.FILES a where a.FILE_ID=291;
    +-------------+----------------------------------------------+
    | FILE_NAME   | a.TOTAL_EXTENTS*a.EXTENT_SIZE/1024/1024/1024 |
    +-------------+----------------------------------------------+
    | ./ht/tb.ibd |                              16.500000000000 |
    +-------------+----------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> select count(1) from ht.tb;
    +-----------+
    | count(1)  |
    +-----------+
    | 268435456 |
    +-----------+
    1 row in set (3 min 11.39 sec)
    添加列,验证是否重新创建表
    mysql> alter table ht.tb add column city varchar(20) default 'beijing';
    Query OK, 0 rows affected (17 min 8.64 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    mysql> select a.FILE_NAME,a.TOTAL_EXTENTS*a.EXTENT_SIZE/1024/1024/1024 from information_schema.FILES a where a.FILE_ID=293;
    +-------------+----------------------------------------------+
    | FILE_NAME   | a.TOTAL_EXTENTS*a.EXTENT_SIZE/1024/1024/1024 |
    +-------------+----------------------------------------------+
    | ./ht/tb.ibd |                              13.742187500000 |
    +-------------+----------------------------------------------+
    1 row in set (0.00 sec)
    表的大小和文件号都改变,确认alter  table 会创建表,在创建表的过程当中会锁表。
    创建硬链接
    [root@redis01 ht]# ln tb.ibd tb.h
    [root@redis01 ht]# ll
    total 28819828
    -rw-r-----. 1 mysql mysql          61 Jun 13 09:33 db.opt
    -rw-r-----. 1 mysql mysql        8586 Jun 28 11:16 person.frm
    -rw-r-----. 1 mysql mysql       98304 Jun 28 11:18 person.ibd
    -rw-r-----. 1 mysql mysql        8703 Jun 28 11:16 shirt.frm
    -rw-r-----. 1 mysql mysql       98304 Jun 28 11:18 shirt.ibd
    -rw-r-----. 1 mysql mysql        8616 Aug 22 12:06 tb.frm
    -rw-r-----. 1 mysql mysql        8616 Aug 22 12:06 tb.frm_bak
    -rw-r-----. 2 mysql mysql 14755561472 Aug 21 18:00 tb.h
    -rw-r-----. 2 mysql mysql 14755561472 Aug 21 18:00 tb.ibd
    -rw-r-----. 1 mysql mysql        8652 Aug 22 11:33 tb_new.frm
    -rw-r-----. 1 root  root         8652 Aug 22 11:41 tb_new.frm_bak
    -rw-r-----. 1 mysql mysql       98304 Aug 22 11:33 tb_new.ibd
    删除表
    mysql> drop table ht.tb;
    Query OK, 0 rows affected (1.54 sec)
    从时间上看很快就删除,在删除硬链接
    [root@redis01 ht]# ll
    total 28762380
    -rw-r-----. 1 mysql mysql          61 Jun 13 09:33 db.opt
    -rw-r-----. 1 mysql mysql        8586 Jun 28 11:16 person.frm
    -rw-r-----. 1 mysql mysql       98304 Jun 28 11:18 person.ibd
    -rw-r-----. 1 mysql mysql        8703 Jun 28 11:16 shirt.frm
    -rw-r-----. 1 mysql mysql       98304 Jun 28 11:18 shirt.ibd
    -rw-r-----. 1 mysql mysql        8616 Aug 22 12:06 tb.frm_bak
    -rw-r-----. 1 mysql mysql 14755561472 Aug 22 15:46 tb.h
    -rw-r-----. 1 mysql mysql        8652 Aug 22 11:33 tb_new.frm
    -rw-r-----. 1 root  root         8652 Aug 22 11:41 tb_new.frm_bak
    -rw-r-----. 1 mysql mysql 14696841216 Aug 22 15:33 tb_new.ibd
    [root@redis01 ht]# rm -f tb.h
    
    利用truncate删除大表
    mysql> select a.FILE_ID,a.FILE_NAME,a.TOTAL_EXTENTS*a.EXTENT_SIZE/1024/1024/1024 from information_schema.FILES a where a.FILE_ID=295;
    +---------+-----------------+----------------------------------------------+
    | FILE_ID | FILE_NAME       | a.TOTAL_EXTENTS*a.EXTENT_SIZE/1024/1024/1024 |
    +---------+-----------------+----------------------------------------------+
    |     295 | ./ht/tb_new.ibd |                              13.687500000000 |
    +---------+-----------------+----------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> truncate table ht.tb_new;
    Query OK, 0 rows affected (8.53 sec)
    
    mysql> drop table ht.tb_new;
    Query OK, 0 rows affected (0.03 sec)
    
    从上面可以得出结论,对于大表利用truncate也能很快删除。
    

      

  • 相关阅读:
    Jmeter(四十一)分布式测试(转!)
    Jmeter(四十)BeanShell范例
    Jmeter(三十九)User.Properties定义全局变量
    Jmeter(三十八)Jmeter Question 之 ‘批量执行SQL语句’
    接口测试“八重天”---HttpClient
    常见的性能测试误区
    UI“三重天”之appium(一)
    Jmeter(三十七)源码导入IDE(转!)
    UI“三重天”之selenium--常用API和问题处理(三)
    kotlin 1.3
  • 原文地址:https://www.cnblogs.com/omsql/p/9518635.html
Copyright © 2020-2023  润新知