45 mysql truncate 的实现

前言

truncate 是一个我们也经常会使用到的命令 

其作用类似于 delete from $table;

但是 他会比 delete 块很多,这里我们来看一下 它的实现

delete 的时候会逐行进行处理, 打上 删除标记, 然后 由后台任务 进行数据处理

 

 

truncate table 的实现

执行 sql 如下 “truncate table tz_test_big_table_copy;”

这里的主要的流程是 一系列的校验, 生成新的newTableId, 删除索引, 重新创建索引, 关联 newTableId 和已有的元数据信息, truncate idb 文件 等等 

我们这里 主要是 查看一下 这些关键的流程

 

新建一个 table_id, 以及其关联到 index, space 等等 

f2a8ebdcb9ff4c369229bef1edb27eb0.png

 

清理 待删除 数据表的相关索引

da2799f6ece94b3db9b9cb3b07a6c9a0.png 

重置 fspHeader 的相关内容 

8fc31176e08c4691bb78899067c4bbb0.png

 

重新创建 tz_test_02 的相关索引 

9fee8471ad654f9bb00c54118f402820.png 

更新 information_schema 中的相关元数据信息 

1af13e2041a74e68a61ecbf7475b6333.png 

truncate 数据表 tz_test_big_table_copy 的 idb 文件, 仅仅保留 114688 字节

7070605727a847b584707d6a1e3028f5.png 

information_schema 中相关元数据信息如下

select * from INNODB_SYS_TABLES where TABLE_ID = 32;
select * from INNODB_SYS_INDEXES where TABLE_ID = 32;
select * from INNODB_SYS_COLUMNS where TABLE_ID = 32;
select * from INNODB_SYS_VIRTUAL where TABLE_ID = 32;

 

8f6d55e1e8fb4a36aaec0c66570d40cd.png

947b9920ce454d6c8245ce9a1633a5d0.png

38bd410d872049448b76aeed8ad4feea.png 

7c6ae70766ee461e94965d413e01b68b.png 

 

 

 

 

 

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

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

相关文章

华为HCIP Datacom H12-821 卷19

1.多选题 如图所示,RTA 的 GE0/0/0、GE0/0/1 接口分别连接部门 1 和 2,其网段分别为 10.1.2.0/24、 10.1.3.0/24 网段,为限制部门 1 和 2 之间的相互访问,在 RTA 上部署 traffic-filter,以下哪些部署方式是正 确? A、配置 ACL3000 拒绝源为 10.1.2.0/24 目的为 10.1.3.0…

2024年软件测试八股文(含答案)

Part1 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自…

【Python】已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’

文章目录 一、分析问题背景二、可能出错的原因四、正确代码示例五、注意事项 已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’ 一、分析问题背景 在处理Excel文件时,Python提供了多种库来方便…

Redis 7.x 系列【15】持久化机制之 RDB

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2 执行原理3. 配置项3.1 save3.2 stop-writes-on-bgsave-error3.3 rdbcompress…

ubuntu常用命令

常用命令 netstatpsps -auxps -eLf netstat netstat -tunlp这个命令用来显示网络连接、路由表和网络接口统计信息。 Proto (协议): 显示连接使用的协议,通常是 “tcp” 或 “udp”。 Recv-Q (接收队列): 表示接收缓冲区中未被进程读取的数据包数量。一般情况下&am…

微积分-导数4(三角函数的导数)

证明 f ( x ) sin ⁡ x f(x) \sin x f(x)sinx的导数为 f ′ ( x ) cos ⁡ x f(x) \cos x f′(x)cosx 已知函数 f ( x ) sin ⁡ x f(x) \sin x f(x)sinx 画出 f ( x ) f(x) f(x)图像以及 f ′ ( x ) f(x) f′(x)的图像 因此,我们可以合理的猜测:…

试用笔记之-汇通窗口颜色显示软件(颜色值可供Delphi编程用)

首先下载汇通窗口颜色显示软件 http://www.htsoft.com.cn/download/wdspy.rar 通过获得句柄颜色,显示Delphi颜色值和HTML颜色值

2024年【陕西省安全员C证】最新解析及陕西省安全员C证考试试卷

题库来源:安全生产模拟考试一点通公众号小程序 陕西省安全员C证最新解析是安全生产模拟考试一点通生成的,陕西省安全员C证证模拟考试题库是根据陕西省安全员C证最新版教材汇编出陕西省安全员C证仿真模拟考试。2024年【陕西省安全员C证】最新解析及陕西省…

(软件06)串口屏的应用,让你的产品显得高级一点(下篇)

本文目录 学习前言 单片机代码实现 学习前言 目前市面上我记得好像有IIC的屏幕、SPI的屏幕、并口屏幕、还有就是今天我们介绍的这个串口屏了,串口屏,就是用串口进行通讯的,上篇我们已经介绍了屏幕供应商提供的上位机软件进行配置好了&#…

自动化鼠标和键盘操作的软件,KeymouseGo是一款功能强大、易于使用的自动化工具,它能够帮助我们从重复性工作中解放出来.

重复性工作常常让我们的双手疲惫不堪。幸运的是,技术的进步为我们提供了自动化解决方案。今天,我们将探讨一款名为KeymouseGo的开源免费软件,它能够记录并自动执行鼠标和键盘操作,从而帮助我们从单调重复的任务中解放出来。 软件…

单选多选提交问卷,代码示例

element中 需要对接口返回的数据进行分析。多选问题使用checkbox,单选题使用radio。 多选时可以绑定min/ma&am…

CS61B Data Structure-Jonathan Lecture2 using objects - OBJECTS METHODS

Recall String s1; // Step 1: declare a String variable s1 new String(); // Step 2: assign it a value, a new empty string objectString s2 new String(); // 1&2 combined今日知识点 situation: pointing to the same object s1 "Yow!";s2 s1; //…

onclick和@click有什么区别,究竟哪个更好使?

哈喽小伙伴们大家好,我是爱学英语的程序员,今天来给大家分享一些关于vue中事件绑定相关的内容,希望对大家有所帮助. 场景是这样的:我要实现一个切换栏,默认激活的是第一个标签,当鼠标移动到第二个标签是,对应的内容让激活.起初,我第一时间想到的是用element plus的组件来实现这…

[leetcode hot 150]第一百一十七题,填充每个节点的下一个右侧节点

题目: 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下&#x…

SpringSecurity6.x使用教程

SpringSecurity6.x使用 SpringSecurity版本 SpringSecurity目前支持的版本如下图所示&#xff0c;可以看到5.x的版本过几年就不会再维护了&#xff0c;6.x将成为主流。 入门 引入依赖 <dependency><groupId>org.springframework.boot</groupId><arti…

CMS Made Simple v2.2.15 远程命令执行漏洞(CVE-2022-23906)

前言 CVE-2022-23906 是一个远程命令执行&#xff08;RCE&#xff09;漏洞&#xff0c;存在于 CMS Made Simple v2.2.15 中。该漏洞通过上传头像功能进行利用&#xff0c;攻击者可以上传一个经过特殊构造的图片文件来触发漏洞。 漏洞详情 CMS Made Simple v2.2.15 中的头像上…

【C++/STL】优先级队列的介绍与模拟实现仿函数

✨ 万物与我皆是自由诗 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1…

关于string的‘\0‘与string,vector构造特点加部分特别知识点的讨论

目录 前言&#xff1a; 问题一&#xff1a;关于string的\0问题讨论 问题二&#xff1a;C标准库中的string内存是分配在堆上面吗&#xff1f; 问题三&#xff1a;string与vector的capacity大小设计的特点 问题四&#xff1a;string的流提取问题 问题五&#xff1a;迭代器失…

04.ffmpeg打印音视频媒体信息

目录 1、相关头文件 2、相关结构体 3、相关函数 4、函数详解 5、源码附上 1、相关头文件 #include <libavformat/avformat.h> 包含格式相关的函数和数据结构 #include <libavutil/avutil.h> 包含一些通用实用函数 2、相关结构体 AV…

【PWN · ret2syscall | GoPwn】[2024CISCN · 华中赛区]go_note

一道GoPwn&#xff0c;此外便是ret2syscall的利用。然而过程有不小的曲折&#xff0c;参考 返璞归真 师傅的wp&#xff0c;堪堪完成了复现。复现过程中&#xff0c;师傅也灰常热情回答我菜菜的疑问&#xff0c;感谢&#xff01;2024全国大学生信息安全竞赛&#xff08;ciscn&am…