硬链接方式重建mysql大表

news2024/12/13 18:17:15

硬链接方式重建mysql大表

操作步骤

选择数据库

select @@datadir;

进入数据文件目录

cd /data/mysql/mydata/testdb

创建硬连接

ln test_trans_msg_xx.ibd test_service_trans_msg_xx.ibd.bak
ll test_trans_msg_xx*

进库删除表

DROP TABLE test_trans_msg_xx;

重建表

CREATE TABLE test_trans_msg_xx
id BIGINT ( 20 )NOT NULL COMMENT ·主键ID·
trans_id BIGINT (20 ) NOT NULL DEFAULT ‘0’ COMMENT ‘交易id’,
apply id VARCHAR (64 ) NOT NULL DEFAULT ‘’ COMMENT ‘业务流水号’,
request msg LONGTEXT NOT NULL COMMENT ‘请求报文’,
response msg LONGTEXT NOT NULL COMMENT ‘响应报文’,
create time datetime NOT NULL DEFAULT CURRENT TIMESTAMP COMMENT ‘创建时间’,
update time datetime NOT NULL DEFAULT CURRENT TIMESTAMP COMMENT’修改时间’,
PRIMARY KEY (id ) USING BTREE,
KEY indx_test_trans_msg_xx_apply_id (apply id ) USING BTREE,
KEY indx_test_trans_msg_xx trans_id(trans_id ) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT
=‘测试记录表xx’;

删除硬链接

rm test_trans_msg_xx.ibd.bak

归纳

  • 在MySQL中,采用硬链接方式来进行大表的DROP和重建操作,其优缺点归纳如下:

优点

减少IO压力

直接DROP一个大表会涉及大量的磁盘IO操作,尤其是在删除物理文件时。如果表非常大,这个过程可能会非常耗时,并且对数据库性能产生显著影响。
通过建立硬链接,DROP操作可以更快地完成,因为它不需要真正地去磁盘上删除那个巨大的物理文件。硬链接使得多个文件名指向同一个inode,因此删除一个硬链接并不会影响实际的物理数据。之后,可以使用truncate命令逐步删除文件,从而降低对IO的影响。

提高操作速度

硬链接的使用可以避免在DROP大表时长时间持有数据字典锁和table cache lock,从而减少对其他并发操作的影响。
在MySQL 5.5.23之前,DROP大表可能会导致系统性能显著下降,因为需要长时间持有buffer pool的mutex。而硬链接方式可以绕过这个问题,使得DROP操作更快完成。

降低系统风险

对于仍然在被高频访问的大表,直接DROP可能会导致系统崩溃或性能严重下降。而采用硬链接方式,可以先将表“标记”为删除,然后再逐步清理物理数据,从而降低对系统的影响。

缺点

复杂性增加

采用硬链接方式需要额外的操作步骤,包括创建硬链接、执行DROP操作和使用truncate命令删除物理文件。这增加了操作的复杂性,并可能引入人为错误。

管理难度提高

在使用硬链接后,需要手动管理这些硬链接文件。如果忘记删除它们,可能会导致磁盘空间被占用。
硬链接文件的存在也可能对数据库备份和恢复操作产生影响,需要特别注意。

限制条件

硬链接的创建受到一些限制,例如不能跨文件系统创建硬链接,也不能对目录创建硬链接。这可能对某些数据库部署环境产生限制。

总结

综上所述,采用硬链接方式DROP重建大表在减少IO压力、提高操作速度和降低系统风险方面具有明显优势,但也会增加操作的复杂性、提高管理难度以及存在一些限制条件。因此,在使用这种方法时,需要权衡利弊并根据具体情况做出决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++鼠标轨迹算法(鼠标轨迹模拟真人移动)

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

Java从入门到工作2 - IDEA

2.1、项目启动 从git获取到项目代码后,用idea打开。 安装依赖完成Marven/JDK等配置检查数据库配置启动相关服务 安装依赖 如果个别依赖从私服下载不了,可以去maven官网下载补充。 如果run时提示程序包xx不存在,在项目目录右键Marven->Re…

【AI知识】过拟合、欠拟合和正则化

一句话总结: 过拟合和欠拟合是机器学习中的两个相对的概念,正则化是用于解决过拟合的方法。 1. 欠拟合: 指模型在训练数据上表现不佳,不能充分捕捉数据的潜在规律,导致在训练集和测试集上的误差都很高。欠拟合意味着模…

汽车升级到底应不应该设置“可取消“功能

最近,汽车OTA(Over-the-Air)升级频频成为车主讨论的热点。有些车主反映,一些升级增加了实用功能,而另一些却让体验变得复杂甚至带来不便。于是,大家不禁发问:汽车升级功能究竟应不应该允许“可取…

优选算法——分治(快排)

1. 颜色分类 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目展示: 题目分析:本题其实就要将数组最终分成3块儿,这也是后面快排的优化思路,具体大家来看下图。 这里我们上来先定义了3个指针&…

[Maven]下载安装、配置与简介

很多框架的下载使用的流程和思路是差不多的,这里以maven做详细介绍。 下载安装与配置变量 下载 首先,我们要使用maven,必须先下载它的相关文件。想要下载,我们可以直接搜索maven。找到它的官网。这里不绕弯子,直接给出…

Maven 安装配置(详细教程)

文章目录 一、Maven 简介二、下载 Maven三、配置 Maven3.1 配置环境变量3.2 Maven 配置3.3 IDEA 配置 四、结语 一、Maven 简介 Maven 是一个基于项目对象模型(POM)的项目管理和自动化构建工具。它主要服务于 Java 平台,但也支持其他编程语言…

【AI知识】人工智能、机器学习、深度学习的概念与联系

下图来自博客 机器学习和深度学习概念入门 ,图中可明显看到人工智能、机器学习、深度学习三个概念的包含关系,下面简单介绍一下这三个概念已经它们之间的联系。 1. 人工智能(Artificial Intelligence,AI) 概念&#x…

BUUCTF Pwn bjdctf_2020_babystack2 题解

1.下载 checksec 64位 拖入IDA64 定位到main函数 以及后门函数 发现read需要读取输入——nbytes的数字来决定长度 同时nbytes是size_t类型 也就是无符号整型的 所以想到整数溢出漏洞 将nbytes设置为-1就会回绕,变成超大整数 从而实现栈溢出漏洞 exp&#xff1a…

微服务-01【续】

1.OpenFeign 上篇文章我们利用Nacos实现了服务的治理,利用利用RestTemplate实现了服务的远程调用。但是远程调用的代码太复杂了: 而且这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用…

中电金信携手中远海科,共启贸易金融数智新篇章

在数智化转型成为驱动经济社会高质量发展的新引擎背景下,“数智方案”栏目聚焦金融等国计民生重点行业场景,依托中电金信“源启筑基咨询引领应用重构”的产品及服务体系,输出市场洞察和行业解决方案、应用案例,旨在全面推动行业IT…

【前端】React快速构建登陆注册前后端全栈

近期更新完毕,建议关注、收藏! 目录 快速入门 快速入门 前提:安装npm #npm install react react-dom conda install nodejs npm install create-react-app cd my-app#切换到项目文件夹 npm install npm i web-vitals --save-dev #如果上述…

JS中的原型链与继承

文章目录 原型链的类比原型链对像与函数拥有的原型属性不同原型链的产生对象的constructor属性继承 原型链的类比 JS中原型链,本质上就是对象之间的关系,通过protoype和[[Prototype]]属性建立起来的连接。这种链条是动态的,可以随时变更。 …

Ubuntu22.04搭建FTP服务器保姆级教程

在网络环境中,文件传输是一项至关重要的任务。FTP(文件传输协议)是一种基于客户端/服务器模式的协议,广泛用于在互联网上传输文件。Ubuntu作为一款流行的Linux发行版,因其稳定性和易用性而广受开发者和系统管理员的喜爱…

基于Kubesphere实现微服务的CI/CD——部署微服务项目(三)

目录 一、kubesphere安装 1、安装本地持久存储 1.1、default-storage-class.yaml 1.2、 openebs-operator.yaml 1.3、安装 Default StorageClass 2、安装kubesphere 2.1、安装Helm 2.2、安装kubesphere 二、配置kubesphere 1、安装插件 2、创建devops项目 3、配置…

jenkins harbor安装

Harbor是一个企业级Docker镜像仓库‌。 文章目录 1. 什么是Docker私有仓库2. Docker有哪些私有仓库3. Harbor简介4. Harbor安装 1. 什么是Docker私有仓库 Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Dock…

open cv学习之图片矫正

一,实验原理 图像矫正的原理是透视变换 图像畸变主要有两类:径向畸变和切向畸变。径向畸变通常会导致图像的四个角向外或向内弯曲;切向畸变则是由于相机与图像平面不完全平行引起的。而OpenCV 提供了一个相机标定的工具,能够自动…

【再谈设计模式】组合模式~层次构建的多面手

一、引言 在软件开发的世界里,我们经常面临着处理对象之间复杂关系的挑战。如何有效地表示对象的部分 - 整体层次结构,并且能够以一种统一的方式操作这些对象,是一个值得探讨的问题。组合模式(Composite Pattern)为我们…

关于Git分支合并,跨仓库合并方式

关于Git合并代码的方式说明 文章目录 关于Git合并代码的方式说明前情提要开始合并方式一:git merge方式二:git cherry-pick方式三:git checkout Git跨仓库合并的准备事项前提拉取源仓库代码 前情提要 同仓库不同分支代码的合并可直接往下看文…

Android Freezer

Freezer原理 Android按照优先级将一般的APP从高到低分为: 前台进程 --> 可感知进程–> 服务进程 --> Cached进程。 Freezer通过冻住cached进程,来迫使这些进程让出CPU,以达到优化系统资源使用的目的。 Cached进程是怎么判定的呢? 由于andro…