当前位置: 首页 > news >正文

硬链接方式重建mysql大表

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

相关文章:

硬链接方式重建mysql大表

硬链接方式重建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 T…...

GPIO在ZYNQ7000中的结构和相关寄存器解析

GPIO MASK DATA LSW和 MASK DATA MSW LSW和MSW分别是LSW (Least Significant Word)和MSW (Most Significant Word)。 因为DATA是u32,所以如果寄存器的基址是XGPIOPS_DATA_LSW_OFFSET,那么32位就能同时让高16位的MASK DATA MSW]31:16和 MASK DATA LSW的bit7同时为…...

Qt Xlsx安装教程

Qt Xlsx安装教程 安装perl 如果没有安装perl,请参考perl Window安装教程 下载QtXlsxWriter源码 下载地址 ming32-make编译32 lib库 C:\Qt\Qt5.12.12\5.12.12\mingw73_32>d: D:\>cd D:\Code\QtXlsxWriter-master\QtXlsxWriter-master D:\Code\QtXlsxWrit…...

Certimate自动化SSL证书部署至IIS服务器

前言:笔者上一篇内容已经部署好了Certimate开源系统,于是开始搭建部署至Linux和Windows服务器,Linux服务器十分的顺利,申请证书-部署证书很快的完成了,但是部署至Windows Server的IIS服务时,遇到一些阻碍&a…...

【中工开发者】鸿蒙商城实战项目(启动页和引导页)

创建一个空项目 先创建一个新的项目选择第一个,然后点击finish 接下来为项目写一个名字,然后点击finish。 把index页面的代码改成下面代码块的代码,就能产生下面的效果 Entry Component struct Index {build() {Column(){Blank()Column(){…...

跟李笑来学美式俚语(Most Common American Idioms): Part 63

Most Common American Idioms: Part 63 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...

scala中如何解决乘机排名相关的问题

任务目标: 1.计算每个同学的总分和平均分 2.按总分排名,取前三名 3.按单科排名,取前三名 好的,我们可以用Scala来完成这个任务。下面是一个简单的示例代码,它将演示如何实现这些功能: // 假设我们有一个…...

OpenCV相机标定与3D重建(10)眼标定函数calibrateHandEye()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算手眼标定: g T c _{}^{g}\textrm{T}_c g​Tc​ cv::calibrateHandEye 是 OpenCV 中用于手眼标定的函数。该函数通过已知的机器人…...

Hadoop生态圈框架部署(九-2)- Hive HA(高可用)部署

文章目录 前言一、Hive部署(手动部署)下载Hive1. 上传安装包2. 解压Hive安装包2.1 解压2.2 重命名2.3 解决冲突2.3.1 解决guava冲突2.3.2 解决SLF4J冲突 3. 配置Hive3.1 配置Hive环境变量3.2 修改 hive-site.xml 配置文件3.3 配置MySQL驱动包3.3.1 下在M…...

docker 相关操作

1. 以下是一些常见的 Docker 命令&#xff1a; docker --version显示安装的 Docker 版本。 docker pull <image_name>从 Docker Hub 或其他镜像仓库下载镜像。 docker build -t <image_name> <path>从指定路径的 Dockerfile 构建 Docker 镜像。 docker i…...

AI作图效率高,亲测ToDesk、顺网云、青椒云多款云电脑AIGC实践创作

一、引言 随着人工智能生成内容&#xff08;AIGC&#xff09;的兴起&#xff0c;越来越多的创作者开始探索高效的文字处理和AI绘图方式&#xff0c;而云电脑也正成为AIGC创作中的重要工具。相比于传统的本地硬件&#xff0c;云电脑在AIGC场景中展现出了显著的优势&#xff0c;…...

【代码随想录day57】【C++复健】 53. 寻宝(prim算法);53. 寻宝(kruskal算法)

53. 寻宝&#xff08;prim算法&#xff09; 好像在研究生的算法课上学过prim算法和kruskal算法&#xff0c;不过当时只是了解了一下大致的概念和流程&#xff0c;并没有涉及到如何去写代码的部分&#xff0c;今天也算是学习了一下这两个算法的代码应该如何去实现&#xff0c;还…...

C++中多态

1) 什么是多态性&#xff1f;C中如何实现多态&#xff1f; 多态性是指通过基类指针或引用调用派生类的函数&#xff0c;实现不同的行为 多态性可以提高代码的灵活性和可扩展性&#xff0c;使程序能够根据不同的对象类型执行不同的操作。 2&#xff09;C中如何实现多态&#…...

【实现多网卡电脑的网络连接共享】

电脑A配备有两张网卡&#xff0c;分别命名为eth0和eth1&#xff08;对于拥有超过两张网卡的情况&#xff0c;解决方案相似&#xff09;。其中&#xff0c;eth0网卡能够连接到Internet&#xff0c;而eth1网卡则通过网线直接与另一台电脑B相连&#xff08;在实际应用中&#xff0…...

算力介绍与解析

算力&#xff08;Computing Power&#xff09;是指计算机系统在单位时间内处理数据和执行计算任务的能力。算力是衡量计算机性能的重要指标&#xff0c;直接影响计算任务的速度和效率。 算力的分类和单位 a. 基础算力&#xff1a;以CPU的计算能力为主。适用于各个领域的计算。…...

解决 MyBatis 中空字符串与数字比较引发的条件判断错误

问题复现 假设你在 MyBatis 的 XML 配置中使用了如下代码&#xff1a; <if test"isCollect ! null"><choose><when test"isCollect 1">AND exists(select 1 from file_table imgfile2 where task.IMAGE_SEQimgfile2.IMAGE_SEQ and im…...

python 词向量的代码解读 self.word_embeds = nn.Embedding(vocab_size, embedding_dim) 解释下

在PyTorch中&#xff0c;nn.Embedding 是一个用于将稀疏的离散数据表示为密集的嵌入向量的模块。这在自然语言处理&#xff08;NLP&#xff09;任务中非常常见&#xff0c;例如在处理单词或字符时&#xff0c;我们通常需要将这些离散的标识符转换为可以被神经网络处理的连续值向…...

记一次:使用C#创建一个串口工具

前言&#xff1a;公司的上位机打不开串口&#xff0c;发送的时候设备总是关机&#xff0c;因为和这个同事关系比较好&#xff0c;编写这款软件是用C#编写的&#xff0c;于是乎帮着解决了一下&#xff08;是真解决了&#xff09;&#xff0c;然后整理了一下自己的笔记 一、开发…...

Android Studio新版本的一个资源id无法找到的bug解决

Android Studio新版本的一个资源id无法找到的bug解决 文章目录 Android Studio新版本的一个资源id无法找到的bug解决一、前言二、Android Studio的无法获取到资源id的bug1、一段简单的Java代码1、错误现象2、错误解决方法 三、其他1、小结2、gradle.properties文件 其他相关属性…...

Datawhale AI冬令营(第一期)--零基础定制你的专属大模型

本文主要简述如何快速完成和一些小细节 第一步下载嬛嬛数据集 数据来源&#xff1a;self-llm/dataset/huanhuan.json at master datawhalechina/self-llm GitHub 注意:1.一定是数据集下载完成一定是.json结尾的 2.这个是github的网址&#xff0c;可能会遇到打不开的情况 …...

SYSTEM表空间自动增长却报ORA-01658?Oracle19C表空间管理的那些坑

Oracle 19C SYSTEM表空间自动增长失效的深度解析与实战指南 引言 在Oracle数据库管理中&#xff0c;SYSTEM表空间扮演着核心角色&#xff0c;它存储着数据字典、系统存储过程等关键元数据。然而&#xff0c;许多DBA在实际工作中都遇到过这样的困惑&#xff1a;明明设置了AUTOEX…...

langchain AI开发大模型翻译助手

我直接给你运行后的真实输出结果&#xff0c;并把为什么会这样输出讲得明明白白&#xff01; 一、你的代码 最终输出结果 prompt: [SystemMessage(content你是一个翻译专家,擅长将 英文 语言翻译成 中文语言.), HumanMessage(contentI love Large Language Model.)] result: 我…...

终极指南:如何在ComfyUI中掌握IPAdapter Plus图像风格迁移技术

终极指南&#xff1a;如何在ComfyUI中掌握IPAdapter Plus图像风格迁移技术 【免费下载链接】ComfyUI_IPAdapter_plus 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_IPAdapter_plus 在AI图像生成领域&#xff0c;ComfyUI IPAdapter Plus插件正在成为图像风格迁…...

Magisk Root技术实践指南:从决策评估到风险管控的完整解决方案

Magisk Root技术实践指南&#xff1a;从决策评估到风险管控的完整解决方案 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk 一、决策评估&#xff1a;场景化应用与技术选型 1.1 设备Root需求分析矩阵 在…...

nli-distilroberta-base完整指南:Web服务接口设计+返回格式解析

nli-distilroberta-base完整指南&#xff1a;Web服务接口设计返回格式解析 1. 项目概述 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务&#xff0c;专门用于分析两个句子之间的逻辑关系。这个轻量级但强大的模型能够快速判断句子对之间的三种…...

OpenClaw+nanobot镜像:3步配置QQ聊天机器人触发AI任务

OpenClawnanobot镜像&#xff1a;3步配置QQ聊天机器人触发AI任务 1. 为什么选择OpenClawnanobot组合&#xff1f; 去年冬天&#xff0c;当我第一次尝试用QQ机器人自动处理群消息时&#xff0c;经历了漫长的环境配置地狱。直到发现星图平台的nanobot镜像&#xff0c;这个开箱即…...

Android Studio中文界面本地化指南:提升开发效率的全场景解决方案

Android Studio中文界面本地化指南&#xff1a;提升开发效率的全场景解决方案 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack And…...

MacBook上的Safari安装油猴插件

MacBook Safari 浏览器安装油猴插件&#xff08;Tampermonkey&#xff09;完整教程 目录 一、什么是油猴插件二、准备工作三、安装 Tampermonkey 插件四、启用插件五、安装油猴脚本六、脚本管理七、进阶设置八、常见问题解决九、热门脚本推荐十、安全注意事项 一、什么是油猴…...

深入理解Vue中.native修饰符在Element UI组件事件绑定的应用

1. 为什么el-card上的click事件会失效&#xff1f; 第一次在Element UI的el-card组件上绑定click事件时&#xff0c;你可能遇到过点击毫无反应的情况。这其实不是代码写错了&#xff0c;而是Vue事件系统的一个特性在"作怪"。Element UI的组件本质上都是Vue自定义组件…...

DAMOYOLO-S入门教程:如何扩展自定义类别——微调适配行业新标签

DAMOYOLO-S入门教程&#xff1a;如何扩展自定义类别——微调适配行业新标签 你是不是遇到过这样的问题&#xff1f;手头有一个很棒的通用目标检测模型&#xff0c;比如DAMOYOLO-S&#xff0c;它识别猫猫狗狗、汽车行人很在行&#xff0c;但你想让它帮你检测生产线上的特定零件…...