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 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【测试专题】软件总体计划方案(2024原件word)

测试目标:确保项目的需求分析说明书中的所有功能需求都已实现,且能正常运行;确保项目的业务流程符合用户和产品设计要求;确保项目的界面美观、风格一致、易学习、易操作、易理解。 获取:软件全套文档过去进主页。 一、…

Go语言--工程管理、临时/永久设置GOPATH、main函数以及init函数

工作区 Go 代码必须放在工作区中。工作区其实就是一个对应于特定工程的目录,它应包含3个子目录:src 目录、pkg目录和bin 目录。 src 目录:用于以代码包的形式组织并保存 Go源码文件。(比如:.go.chs等)pkg 目录:用于存放经由 go install 命令构建安装后的代码包(包…

2.3.2 主程序和外部IO交互 (文件映射方式)----C#调用范例

2.3.2 主程序和外部IO交互 (文件映射方式)----C#调用范例 效果显示 1 说明 1 .1 Test_IOServer是64bit 程序, BD_SharedIOServerd.dll 在 /Debug文件夹中 1 .2 Test_IOServer是32bit 程序, BD_SharedIOClientd.dll (32bit&#…

java join与yield方法

join() join() 方法的主要作用是使当前线程(调用 join() 方法的线程)等待目标线程完成执行。当目标线程执行完毕后,当前线程才会继续执行。 代码示例: public class JoinExample {public static void main(String[] args) {Thr…

在数字化时代,自助BI是数据价值最大化的必经之路

引言:在数字化时代,数据已成为企业最宝贵的资产之一。然而,仅仅拥有海量数据并不足以带来竞争优势,关键在于如何有效地分析并利用这些数据以指导决策、优化运营、提升客户体验,并最终实现业务的持续增长。在一章里笔者…

SpringBoot新手快速入门系列教程七:基于一个低配centoos服务器,如何通过宝塔面板部署一个SpringBoot项目

1,如何打包一个项目 通过IDEA自带的命令行,执行 ./gradlew clean build 2,检查生成的JAR文件 进入 build/libs 目录,你应该会看到一个类似 helloredis-0.0.1-SNAPSHOT.jar 的文件。 3:运行生成的JAR文件 你可以使…

springboot服务启动读取不到application.yml中的nacos.config信息

我的版本: 可以添加bootstrap.yml文件,在里面添加nacos.config的配置信息 也可以添加VM参数 -Dspring.cloud.nacos.discovery.server-addr -Dspring.cloud.nacos.config.server-addr -Dspring.cloud.nacos.config.namespace -Dspring.cloud.nacos.discov…

图片管理新纪元:高效批量横向拼接图片,一键生成灰色艺术效果,打造专业视觉体验!

在数字时代,图片已成为我们生活和工作中不可或缺的一部分。但面对海量的图片,如何高效地进行批量管理、拼接和调色,成为许多人面临的难题。今天,我们为您带来了一款颠覆性的图片管理工具,让您轻松实现图片批量横向拼接…

设计模式探索:建造者模式

1. 什么是建造者模式 建造者模式 (Builder Pattern),也被称为生成器模式,是一种创建型设计模式。 定义:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式要解决的问题: 建造者模…

前端面试题(CSS篇四)

一、CSS 优化、提高性能的方法有哪些? 加载性能: (1)css压缩:将写好的css进行打包压缩,可以减少很多的体积。 (2)css单一样式:当需要下边距和左边距的时候,很…

kafka中

Kafka RocketMQ概述 RabbitMQ概述 ActiveMQ概述 ZeroMQ概述 MQ对比选型 适用场景-从公司基础建设力量角度出发 适用场景-从业务场景出发 Kafka配置介绍 运行Kafka 安装ELAK 配置EFAK EFAK界面 KAFKA常用术语 Kafka常用指令 Kafka中消息读取 单播消息 group.id 相同 多播消息 g…

【VUE基础】VUE3第三节—核心语法之ref标签、props

ref标签 作用&#xff1a;用于注册模板引用。 用在普通DOM标签上&#xff0c;获取的是DOM节点。 用在组件标签上&#xff0c;获取的是组件实例对象。 用在普通DOM标签上&#xff1a; <template><div class"person"><h1 ref"title1">…

Vmware环境下ESXi主机 配置上行链路、虚拟交换机、端口组、VMkernel网卡

一、适用场景 1、使用专业服务器跑多种不同的业务&#xff0c;每种业务可能所需运行的server环境不同&#xff0c;有的需要Linux server CentOS7/8、kali、unbuntu……有的需要windows server2008、2003、2016、2019、2022…… 2、本例采用的是VMware ESXi6.7 update 3版本&am…

【硬件产品经理】硬件产品手板设计

目录 简介 硬件手板 手板资料 作者简介 简介 今天来聊聊产品手板这个话题。 到了手板这个层面其实就属于产品设计细节了&#xff0c; 无论你对整个开发体系如何如何了解&#xff0c; 对公司管理流程如何如何精通。 最终都是要回归到业务细节中去的&#xff0c; 你可能…

非参数检测3——单输入检测系统

输入数据 各个变量之间相互独立&#xff0c;其概率分布函数为&#xff0c;均值和方差分别为 单输入系统&#xff1a;w由确定性信号s和零均,方差为σ02高斯白噪声n组成 单输入系统的H认为是简单的&#xff0c;K认为是复杂的&#xff0c;其概率分布函数分别为 其联合概率密度函数…

Go语言--复合类型之map、结构体

map Go 语言中的 map(映射、字典)是一种内置的数据结构&#xff0c;它是一个无序的 key-value 对的集合&#xff0c;比如以身份证号作为唯一键来标识一个人的信息。 格式 map [keyType]valueType 在一个 map 里所有的键都是唯一的&#xff0c;而且必须是支持和!操作符的类型…

IT高手修炼手册(4)PowerShell命令

一、前言 PowerShell是一个功能强大的命令行界面和脚本环境&#xff0c;它允许用户管理Windows操作系统和应用程序。 二、文件和目录操作 Get-ChildItem&#xff1a;列出指定路径下的文件和文件夹。简写为ls或dir。 Copy-Item&#xff1a;复制文件和文件夹。简写为copy或cp。 M…

Docker-基础

一&#xff0c;Docker简介&#xff0c;功能特性与应用场景 1.1 Docker简介 Docker是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化&#xff0c;容器…

备考AMC8和AMC10竞赛,吃透2000以来1850道真题和解析(持续)

距离2024年AMC10竞赛还有3个多月的时间&#xff0c;距离2025年AMC8竞赛还有6个多月的时间&#xff0c;那么&#xff0c;如何备考接下来的AMC8、AMC10竞赛呢&#xff1f; 做真题&#xff0c;吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。 通过做真题&#xff0c;可…

读人工智能全传05专家系统

1. 知识就是力量 1.1. 人工智能领域此前存在的问题是过度关注搜索和解决问题这种通用法则 1.2. “弱”方法缺少一个关键的要素&#xff0c;而这一要素才是在所有智能行为中起决定性作用的组成部分&#xff1a;知识 1.3. 一种基于知识的人工智能系统&#xff1a;专家系统开始…