MySQL超大表怎么快速删除

MySQL 超大表快速删除

如果在mysql中直接删除大表可能会导致mysql挂起,这可能会对业务产生负面影响。删除超大表的前提是该表是独立表空间,这样删除才有效。

表创建一个硬链接

# du -sh pay_bills.ibd 175G        pay_bills.ibd# 创建硬链接# ln pay_bills.ibd pay_bills.ibd_hdlk

执行表删除

在Linux中,每个存储文件都会有指向该文件的Inode Index,多个文件名可以通过相同Inode Index指向相同一个存储文件。

如果该文件名引用的Inode Index上还被其他文件名引用,则只会删除该文件名和Inode Index之间的引用

如果该文件名引用的Inode Index上没有被其他文件名引用,则删除该文件名和Inode Index之间的引用并删除Inode Index指向的存储文件。

实际上只是删除了对 pay_bills.ibd 的一个文件引用,我们 pay_bills.ibd_hdlk 对物理文件的引用还是存在的,就不会执行OS级别的删除操作,IO波动不大,降低对MySQL的影响。

mysql> drop table pay_bills;Query OK, 0 rows affected (3.24 sec)

执行文件删除

安装 truncate 工具

# yum install coreutils -y

执行删除脚本

#!/bin/bashTRUNCATE=/usr/bin/truncate# 从175G开始每次删除2G,最后如果脚本truncate后还剩下部分文件,使用rm删除for i in `seq 175 -2 1`; do   $TRUNCATE -s ${i}G  pay_bills.ibd_hdlk  sleep 1donerm -f pay_bills.ibd_hdlk

MySQL快速清空大表数据       

项目初次上线,进行性能测试造的数据量巨大,都是些不可用数据,但又有一些是必须保留的,很多时候需要进行系统性的清理数据或者是,将有用的数据筛选出来之后再插入到表中!保留表结构或者重新建表(导出数据库中的表结构),重新执行SQL语句。

MySQL删除或清空表数据

清空表数据的五种方式

1、truncate–删除所有数据,保留表结构,不能撤销还原

2、delete–是逐行删除速度极慢,不适合大量数据删除

3、drop–删除表,数据和表结构一起删除

4、导出表结构,再次执行一遍;

5、导出数据库所有表结构,再次执行一遍,清空所有表(与4一致)

清空表数据语法

truncate table 表名;(仅保留表结构,速度很快)

delete from 表名;

delete from 表名 where 列名=”value “;

DROP `t_product_events` IF EXIST;CREATE TABLE `t_product_events` (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '事件ID',`level` int(11) NULL DEFAULT NULL,`product_id` bigint(20) NOT NULL COMMENT '产品类型ID',`identifier` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件名称',`description` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '事件描述',`type` int(11) NOT NULL COMMENT '事件类型,0:info(信息)、1:alert(告警)、2:error(故障)',`ref_id` int(11) UNSIGNED NULL DEFAULT 0 COMMENT '引入模板时有意义',`original_required` tinyint(2) NOT NULL,`update_required` tinyint(2) NOT NULL DEFAULT 0 COMMENT '是否是标准功能的必选事件,0:可选,1:必选',`custom` tinyint(2) NOT NULL COMMENT '0:模板导入,1:自定义',`method` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件对应的方法名称(根据identifier生成)',`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,`update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0),`ref` bigint(20) NULL DEFAULT NULL,`related` int(11) NULL DEFAULT 0 COMMENT '被预发布或者已发布关联个数',`copyright` tinyint(2) NULL DEFAULT 0 COMMENT '是否发布过, 1 发布过 0未发布',`prerelease` tinyint(2) NULL DEFAULT 0 COMMENT '是否预发布过, 1 预发布过 0未预发布',PRIMARY KEY (`id`) USING BTREE,INDEX `idx_product_id`(`product_id`) USING BTREE COMMENT '查询优化') ENGINE = InnoDB AUTO_INCREMENT = 497560 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '产品类型事件表' ROW_FORMAT = Compact;

以上就是MySQL超大表怎么快速删除的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/156289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
淘宝店铺女鞋修改名称怎么改?怎么更改宝贝参数呢?淘宝店铺女鞋修改名称与参数调整全攻略:新手卖家必读指南
上一篇 2025年12月4日 17:44:48
如何使用PHP递增操作符实现动态命名_PHP动态命名递增技巧
下一篇 2025年12月4日 17:52:50

相关推荐

  • 详解高性能Mysql主从架构的复制原理及配置

    详解高性能Mysql主从架构的复制原理及配置详解高性能Mysql主从架构的复制原理及配置详解高性能Mysql主从架构的复制原理及配置详解高性能Mysql主从架构的复制原理及配置

    免费学习推荐:mysql视频教程 1 复制概述       Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,…

    2026年9月6日 用户投稿
    100
  • MySQL少有人知的排序方式

    MySQL少有人知的排序方式MySQL少有人知的排序方式MySQL少有人知的排序方式MySQL少有人知的排序方式

    免费学习推荐:mysql视频教程 ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些特殊的排序,单单使用字段名就无法满足需求了,下面给大家介绍几个我遇到过的排序方法: 一、准备工作 为了更好演示与理解,先准备一张学生表,加入编号、姓名、成绩三个字段,插入几条数据,如图…

    2026年9月6日 用户投稿
    200
  • MySQL 5.7安装:my.ini配置文件中哪些参数必填?

    MySQL 5.7 my.ini 配置详解:必填项与推荐设置 安装MySQL 5.7时,虽然所有my.ini配置项并非强制填写,但部分参数对于数据库正常运行至关重要。 虽然MySQL可以使用默认配置启动,但为了优化性能和确保数据安全,建议配置以下关键参数: 核心必填参数: basedir: 指定My…

    2026年9月6日
    200
  • 简介 MySQL日志之redo log和binlog

    免费学习推荐:mysql视频教程 前言 只要是接触过MySQL的程序员,那么或多或少都有听过redo log(重做日志)和binlog(归档日志)。今天就来分享一下这两个日志的用处和区别。 简单来说,redo log是InnoDB特有的日志,如果使用的是其他存储引擎,就没有redo log,只有bi…

    2026年9月6日
    400
  • MySQL存储引擎性能比较_MySQL引擎选择适合业务需求

    MySQL存储引擎性能比较_MySQL引擎选择适合业务需求MySQL存储引擎性能比较_MySQL引擎选择适合业务需求MySQL存储引擎性能比较_MySQL引擎选择适合业务需求MySQL存储引擎性能比较_MySQL引擎选择适合业务需求

    innodb是mysql存储引擎的主流选择,因其支持acid事务、行级锁定、崩溃恢复、mvcc及外键约束,适用于高并发、数据一致性要求高的场景;myisam适用于读多写少、对数据一致性要求低的特定场景,但因表级锁定、非事务性及弱崩溃恢复能力,适用范围逐渐缩小;选择存储引擎需根据业务特性判断:1.涉及…

    2026年9月6日 用户投稿
    100
  • 如何在mysql中分析慢查询性能

    首先开启慢查询日志并设置阈值,通过mysqldumpslow和pt-query-digest分析日志定位高频或耗时SQL,再用EXPLAIN检查执行计划,重点关注索引使用、扫描行数及临时表等问题,进而优化查询性能。 在 MySQL 中分析慢查询性能,核心是定位执行效率低的 SQL 语句并优化其执行计…

    2026年9月6日
    100
  • mysql数据库怎么创建数据表

    mysql创建数据表的方法:使用sql通用语法【CREATE TABLE table_name (column_name column_type);】即可创建成功。 本文操作环境:windows10系统、mysql 5.7、thinkpad t480电脑。 以下为创建MySQL数据表的SQL通用语法…

    2026年9月6日
    200
  • 聊聊MySQL 中常用的日期相关函数

    免费学习推荐:mysql视频教程 目录 第一部分:时间差函数 timestampdiff、datediff、timediff一、时间差函数:timestampdiff二、时间差函数:datediff三、时间差函数:timediff四、其他日期函数其他日期函数第二部分 日期、时间戳、字符串互相转换其他…

    2026年9月6日
    100
  • MySQL精讲之一:DQL数据查询语句

    MySQL精讲之一:DQL数据查询语句MySQL精讲之一:DQL数据查询语句MySQL精讲之一:DQL数据查询语句MySQL精讲之一:DQL数据查询语句

    免费学习推荐:mysql视频教程 目录 一、基础查询二、条件查询三、排序查询四、常见函数五、分组查询六、连接查询七、子查询八、分页查询九、联合查询 样本数据准备 进行DQL查询语句实验前,首先准备对应的数据,作为样本以供查询使用 使用SQLyog中导入该SQL脚本,可以看到准备好的样本表: 该样本是…

    2026年9月6日 用户投稿
    300
  • MySQL精讲之二:DML数据操作语句

    免费学习推荐:mysql视频教程 文章目录 一、插入insert二、修改update三、删除delete/truncate四、DML语句练习题 一、插入insert 方式一:insert into 表名(列名,…) values(值1,…); 方式二: insert into 表名 set …

    2026年9月6日
    200
  • MySQL精讲之三:DDL数据定义语句

    免费学习推荐:mysql视频教程 文章目录 一、DDL数据定义语句二、数据类型2.1 整型2.2 小数2.3 字符型2.4 日期类型二、六大约束四、标识列五、级联删除与置空 一、DDL数据定义语句 库的管理 创建:create database [if not exists] 库名; 修改:若需要修…

    2026年9月6日
    200
  • MySQL精讲之四:TCL事务控制语句

    免费学习推荐:mysql视频教程 文章目录 一、事务的介绍与使用二、事务并发问题及解决方案三、视图 一、事务的介绍与使用 通过show engines;可以查看mysql支持的存储引擎,其中innodb支持事务,而myisam,memory等不支持事务。 事务:一个或一组sql语句组成一个sql单元…

    2026年9月6日
    200
  • MySQL精讲之五:存储过程和函数

    免费学习推荐:mysql视频教程 文章目录 一、变量系统变量自定义变量二、存储过程三、函数 一、变量 系统变量 系统变量分为全局变量和会话变量,是由系统提供的。 全局变量作用域:服务器每次启动将为所有的全局变量初始化,不能跨重启。 会话变量作用域:仅针对当前会话有效。 【全局变量】 作用域:服务器每…

    2026年9月6日
    100
  • MySQL精讲之六:流程控制

    MySQL精讲之六:流程控制MySQL精讲之六:流程控制MySQL精讲之六:流程控制MySQL精讲之六:流程控制

    免费学习推荐:mysql视频教程 文章目录 分支结构IF函数case结构IF结构循环结构 mysql中的流程控制和其他编程语言中的类似,也分为三种:顺序结构、分支结构、循环结构。前几篇文章中用到的基本上都是顺序结构(除了IF函数),下面主要针对分支结构和循环结构进行介绍。 分支结构 IF函数 语法:…

    2026年9月6日 用户投稿
    100
  • hive和mysql的区别是什么

    区别:1、Mysql采用了SQL语言,Hive采用了类SQL的查询语言HQL。2、Hive不支持数据的改写和添加,Mysql支持。3、Hive无索引,MySQL有索引。4、Hive底层是MarReduce,MySQL底层是执行引擎。 本教程操作环境:windows7系统、mysql8版本、Dell …

    2026年9月6日
    100
  • linux下如何部署php项目?

    linux下如何部署php项目?linux下如何部署php项目?linux下如何部署php项目?linux下如何部署php项目?

    linux下部署php项目环境可以分为两种,一种使用apache,php,mysql的压缩包安装,一种用yum命令进行安装。 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系。apache和php之间的配置没有什么难度,但是和mysql进行配置的时候就需要对php的了解了。 以下是用yum在…

    2026年9月6日 用户投稿
    500
  • MySQL如何处理长文本字段_性能和存储空间的权衡?

    MySQL如何处理长文本字段_性能和存储空间的权衡?MySQL如何处理长文本字段_性能和存储空间的权衡?MySQL如何处理长文本字段_性能和存储空间的权衡?MySQL如何处理长文本字段_性能和存储空间的权衡?

    varchar适合较短文本,text系列适合大文本;长文本字段影响查询性能和内存资源;解决办法包括拆分到扩展表、避免text索引、使用搜索引擎;存储引擎建议用innodb并设置dynamic行格式;全文检索可用外部工具优化性能。mysql处理长文本时需根据字段长度选择varchar或text类型,v…

    2026年9月6日 用户投稿
    300
  • mysql环境变量如何配置

    mysql环境变量如何配置mysql环境变量如何配置mysql环境变量如何配置mysql环境变量如何配置

    mysql环境变量的配置方法:1、找到C盘中的MySQL安装路径;2、在“我的电脑”中,依次点击“系统属性”-“高级系统设置”选项;3、在“环境变量”弹窗中,依次点击“高级”-“系统变量”;4、找到path路径,点击“编辑”选项,将MySQL安装路径填入即可。 本教程操作环境:windo…

    2026年9月6日 用户投稿
    000
  • mysql练习之2:运算符的使用

    案例:创建数据表tmp15,其中包含varchar类型的字段note和int类型的字段price。 使用运算符对表tmp15中不同的字段进行运算。使用逻辑操作符对数据进行逻辑操作。 使用位操作符对数据进行位操作。 (免费学习推荐:mysql视频教程) 首先创建tmp15表,插入一条记录,note值为…

    2026年9月6日
    100
  • MySQL数据查询之连接查询

    连接关系是关系数据库模型的主要特点。也是最主要的查询,主要包括内连接、外连接等。通过连接运算符可以实现多个表查询。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当查询数据时,通过连接操作查询出存放在多个表中不同实体的信息。当两个或多个表中存在相同意义…

    2026年9月5日
    100

发表回复

登录后才能评论
关注微信