zoukankan      html  css  js  c++  java
  • MySQL——如何快速删除大表

    前言

    线上有一个表,大小为24G左右,没有什么重要的数据,却一直没有优化,导致业务无法进行,在此环境上,所以我们开始了删除之路

    步骤

    复制表

    我这里使用Navicat工具直接复制表,选择仅结构即可。

    创建硬链接

    如果不知道自己的存储位置,可使用show variables like "datadir";查看自己的数据存储位置。

    ln instruction.frm instruction.frm.bak
    ln instruction.ibd instruction.ibd.bak
    

    删除表

    DROP TABLE "表格名";
    

    24G的数据删除大概用了15秒左右

    修改表名

    将我们刚才复制的表,表名修改为线上正常使用的表名即可。

    删除物理文件

    切记大的物理文件不可直接删除,直接操作会导致磁盘IO和CPU利用率升高,影响线上业务可使用truncate来进行删除操作。

    truncate -s 2G instruction.ibd.bak
    
  • 相关阅读:
    NestingQuery
    Repeat
    GenericQuery
    StringOpr
    RHEL5.6 安装 virtualbox
    DNS的资料总结
    drop delete truncate 区别
    Linux Shell命令ulimit的用法
    OSI及TCP/IP的概念和区别
    shell:读取文件的每一行内容并输出
  • 原文地址:https://www.cnblogs.com/wangyang0210/p/13410029.html
Copyright © 2011-2022 走看看