zoukankan      html  css  js  c++  java
  • 快速删除大表

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

    查看表大小
    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也能很快删除。
    

      

  • 相关阅读:
    表达式树
    二叉查找树
    二叉树的先中后序遍历
    利用树的先序和后序遍历打印 os 中的目录树
    栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
    C语言的运算符的优先级与结合性+ASCII表
    算法运行时间中的对数
    c++ primer 第三章 标准库类型
    C++ premier 中文版 学习笔记(第五章 表达式)
    使用applescript脚本方式以管理员权限运行
  • 原文地址:https://www.cnblogs.com/omsql/p/9518635.html
Copyright © 2011-2022 走看看