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

    MySQL Galera Cluster 快速删除大表

    先上步骤,以下步骤每台机器上都要按顺序执行。(一台一台搞):

    第一步:为ibd文件创建硬链接来加速删除,减少对数据库造成的影响。

    cd /data/mysqldata/test/
    ln sbtest1.ibd sbtest1.ibd.hdlk


    第二步:进入MySQL,执行两条命令,在执行set命令之后,此session就不要对数据进行操作了,避免数据不同步。

    set @@session.wsrep_on = OFF ;
    drop table sbtest1;


    第三步:退出MySQL,删除.hdlk文件

    rm -r sbtest1.ibd.hdlk


    原理:

    执行完ln命令后,我们发现多了一个是吧sbtest1.ibd.hdlk文件,且sbtest1.ibd.hdlk和sbtest1.ibd的inode数均为2,因为我们知道,一个磁盘上的文件,可以有多个文件系统的文件引用,这个多个文件是完全相同的,都指向同一个磁盘上的文件,当我们删除任何一个文件的时候,都不会影像真实的文件,只是将其被引用数目减1,只有当被引用数目变为1的时候,再次删除文件,才会真正被删除。

    删除时,这两种情况的却别很明显,一个是在减少被引用数目,一个是在真正做IO来删除它。这就将由MySQL来删除大文件的操作转换为一个简单的操作系统级的文件删除,从而减少了对MySQL的影响。

  • 相关阅读:
    matplotlib基础
    numpy基础
    池化层的前向计算
    卷积神经网络应用于MNIST数据集分类
    用tensorflow的Eager执行模式
    tensorboard网络结构
    优化器
    交叉熵
    [webpack]——loader配置
    [webpack]--webpack 如何解析代码模块路径
  • 原文地址:https://www.cnblogs.com/likappe/p/9504472.html
Copyright © 2011-2022 走看看