万答#7,如何批量删数据和调整系统表空间

删除数据库中的表空间(MySQL) 在MySQL中,表空间是用于存储和管理数据表的重要组成部分。有时候,我们可能需要删除一个不再需要的表空间。本文将介绍如何在MySQL中删除表空间,并提供相应的源代码。通过以上步骤,您可以在MySQL中删除不再需要的表空间。请记住,在执行此操作之前,请确保备份重要数据,以防止数据丢失。连接到MySQL服务器:首先,我们需要使用MySQL客户端连接到MySQL服务器。选择要删除的数据库:连接到MySQL服务器后,我们需要选择要删除表空间的数据库。删除表空间:一旦选择了要删除表空间的数据库,我们可以使用。 阅读详情

欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答

前情提要:

业务需要删除大量数据,如果直接 delete 会造成如下问题:

1.会产生大事务,造成主从延迟,影响数据库高可用切换。 2.系统表空间会不断膨胀。 3.锁定的记录多,更容易可能导致锁等待。 问1:如何优雅的删除大量数据

答:

1.如果表不需要就直接 drop

2.如果只保留表结构用 truncate

3.如果只保留部分数据可以使用 pt-archive 进行分批删除

特别注意,如果表太大的话,直接drop会truncate可能会造成大量IO导致数据库出现短暂响应延迟,可以通过硬链接的方式对表删除处理

问2:系统表空间不断膨胀怎么处理 答:

1.如果是已存在的数据库 无法在线收缩,那就通过mysqldump的方式建立新的从库,然后主从切换

2.新实例如何处理

  • a. 可以设置独立表空间,关键参数
innodb_file_per_table

独立表空间也会产生碎片,但是可以通过 OPTIMIZE TABLE 或 ALTER TABLE xxxx ENGINE=INNODB 进行碎片回收,5.7之后该操作属online ddl,具体可以自行测试

  • b. 设置独立UNDO空间,然后设置自动回收。

5.6 版本就支持独立UNDO空间,但是不支持在线回收,关键参数

innodb_undo_directory
innodb_undo_tablespaces
innodb_undo_logs

5.7 版本增加了在线回收的功能,关键参数

innodb_undo_log_truncate
innodb_max_undo_log_size
innodb_purge_rseg_truncate_frequency

8.0 版本中undo log的管理更加灵活,主要如下改进

  • 1.可以动态创建或删除UNDO表空间
  • 2.可以动态增加或减少UNDO表空间的数量
  • 3.无论是否要进行InnoDB恢复,也可以在启动前更改相关设置

问:ibtmp文件不断增大,怎么处理

答:

5.7 版本可以设置限制ibtmp大小,但是需要重启实例;同时超过设定的最大值会导致SQL执行失败,关键参数

innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G

8.0 版本临时表空间有区分全局和session级;垃圾SQL生成的临时表空间随着SQL的结束也会跟着自动释放。

Enjoy GreatSQL :)

文章推荐:

GreatSQL MGR FAQ https://mp.weixin.qq.com/s/J6wkUpGXw3YkyEUJXiZ9xA

万答#12,MGR整个集群挂掉后,如何才能自动选主,不用手动干预 https://mp.weixin.qq.com/s/07o1poO44zwQIvaJNKEoPA

『2021数据技术嘉年华·ON LINE』:《MySQL高可用架构演进及实践》 https://mp.weixin.qq.com/s/u7k99y6i7riq7ScYs7ySnA

一条sql语句慢在哪之抓包分析 https://mp.weixin.qq.com/s/AYibbzl860D90rOeyjB6IQ

万答#15,都有哪些情况可能导致MGR服务无法启动 https://mp.weixin.qq.com/s/inSGpd0Q_XIl2Mb-VsvNsA

技术分享 | 为什么MGR一致性模式不推荐AFTER https://mp.weixin.qq.com/s/rNeq479RNsklY1BlfKOsYg

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee: https://gitee.com/GreatSQL/GreatSQL

GitHub: https://github.com/GreatSQL/GreatSQL

Bilibili: https://space.bilibili.com/1363850082/video

微信&QQ群: 可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群

QQ群:533341697 微信小助手:wanlidbc

本文由博客一文多发平台 OpenWrite 发布!

基恩士数字光纤放大器 在2路输出类型上此为通道开关,并未配备0路类型;设置已搞不清楚不知道怎么办时···完成初始化后,模块重新显示当前值。①无工件时短按[SET]①有工件时短按[SET]各部位的名称和基本操作。可以手动微调设置值。 阅读详情

相关推荐

DeepSeek的训练与优化流程

DeepSeek的训练体系不仅追求极致的计算效率,更注重将物理规律、人类知识、安全伦理深度融入训练过程,其"效率-安全-可解释性"三角平衡的设计理念,为行业提供了重要参考范式。

m0_56896669的博客 1435

《MySQL实战45讲》——学习笔记13 “数据删除流程、表空间释放、重建表过程、inplace&online DDL“

13 | 为什么表数据删掉一半,表文件大小不变?

娜娜米的博客 1336

Palantir的本体论建模跟数仓建模的异同

Palantir的Foundry Ontology通过构建组织的数字孪生体,将数据集和模型映射为对象类型、属性、链接和操作类型,形成完整的语义知识网络。与传统数仓建模相比,本体建模以业务问题为驱动,强调细粒度语义和实时决策能力,采用图语义技术实现灵活的映射关系。

轩哥的个人研究和成长记录 1595

用delete删除数据使数据库占用硬盘空间增大的原因

 1、delete与truncate的区别 delete:执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作,所以当从数据库中删除许多条记录想释放硬盘空间时,事务日志对应的ldf文件增长很快,结果是数据库所占空间非但没有减小反而增大了; truncate 表名: 保留表的结构,一次性地从表中删除所有的数据页并不把单独的删除操作记录记

zoro 4860

别再花钱买商业软件了!这4款免费DIC工具,从散斑生成到应变分析全搞定

本文介绍了4款免费开源的DIC(数字图像相关技术)工具,涵盖从散斑生成到应变分析的全流程,帮助用户零成本构建专业级DIC工作流。这些工具在精度、算法透明度和生态整合方面具有优势,适用于材料力学和实验力学研究,可替代昂贵的商业软件。

weixin_42525369的博客 168

【短距离通信】【WiFi】精讲802.11n/ac/ax mpdu和ampdu最大长度

在 Wi-Fi 标准(802.11n、802.11ac 和 802.11ax)中,和是数据传输的核心概念。理解它们各自的作用以及不同标准下的最大长度限制,有助于深入了解 Wi-Fi 的性能优化机制。以下是对802.11n802.11ac和802.11ax中MPDU和A-MPDU最大长度的详细技术分析和对比。1. MPDU 和 A-MPDU 的基本概念MPDU 是经过 MAC 层处理后的数据单元,主要由MAC层数据帧和物理层的传输头部(PHY headers)组成。

风云说通信 1108

oracle 删除空间不足,oracle表空间扩容、创建、删除(解决表空间不足问题)

前言整理一下之前使用oracle数据库遇到的表空间不足的问题,顺便水个博客。oracle表空间操作语句1.改变已存在的数据文件的大小ALTER TABLESPACE app_data ADD DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘ SIZE 20480M;2.允许已存在的数据文件自动增长ALTER DATABASE...

weixin_34966468的博客 373

RK3568笔记十七:LVGL v8.2移植

若该文为原创文章,转载请注明原文出处。本文介绍嵌入式图形库移植到Linux开发板ATK-RK3568上的步骤。

4232

Mysql在生产环境中快速清理数据及表空间释放

Mysql数据快速清理及表空间释放 1、TABLES表主要字段说明: MySQL的 information_schema 数据库中的TABLES 表记录了MySQL数据库中每个表占用的空间、表记录的行数,更新时间,说明等,这个表主要字段如下: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数,即表的行数 ...

Field_Yang的博客 1万+

10、高阶ΣΔ调制器设计与优化

本文深入探讨了高阶ΣΔ调制器的设计与优化技术,重点介绍了NTF零点优化方法,通过分散单位圆上的零点分布提升信噪失真比(SQNR)。文章分析了量化噪声耦合技术如何有效提高噪声整形阶数,并对比了CIFB、CIFF、CRFB和CRFF等不同架构的性能特点。同时,详细阐述了基于稳定性与性能权衡的设计流程,结合Schreier的Delta-Sigma Toolbox实现NTF综合与仿真验证。内容涵盖从理论推导到实际设计步骤,为高阶ΣΔ调制器的稳定性提升与性能优化提供了系统性指导。

tgb345678的博客 134

手把手带你实现DAF-Net:零代码基础入门红外与可见光图像融合(从理论到实战)

本文介绍了红外与可见光图像融合技术及DAF-Net网络的应用。红外图像能捕捉热源但缺乏细节,可见光图像纹理丰富但在低光环境下表现不佳。DAF-Net采用双分支特征提取和动态注意力融合架构,能智能分配特征权重实现优势互补。文章详细讲解了环境配置、数据集准备(如TNO数据集)和预处理方法,并提供了DAF-Net的核心代码实现,包括特征提取、注意力融合和图像重建模块。通过该技术可在安防、自动驾驶等领域获得更优质的融合图像,提升视觉感知能力。

m0_71589036的博客 229

mysql清理表空间

show table status like '表名'; ALTER TABLE  表名 ENGINE=INNODB

ziruominglin的专栏 2420

PCL 动态半径滤波【2025最新版】

使用PCL实现的2022年最新SCI论文——【Design of Dust-Filtering Algorithms for LiDAR Sensors Using Intensity and Range Information in Off-Road Vehicles】 一文中提出用于自动驾驶点云剔除粉尘、雨雪等影响因素导致的噪声点滤波算法。

点云侠的博客 1473

mysql大批量删除存储_关于删除mysql大表数据并释放存储空间的两种方式

删除表数据我们通常会使用delete语句来删除,但是执行完delete语句删除了表中部分数据后你会发现表对应的存储文件大小并不会缩小,如果要进一步释放被删除数据的空间需要执行optimize table tablename命令来进行优化(详情可看看这篇文章:http://blog.51yip.com/mysql/1222.html)。如果表的数据量非常巨大比如项目里一些日积月累不断变大的日志表,使...

weixin_33794626的博客 776

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MySQL删除超大表操作

======================================================================== 问题原因 通常情况下,会使用innodb_file_per_table=ON来将每张InnoDB表数据和索引数据保存到一个独立的文件中,而当MySQL运行在Linux版本时,使用DROP TABLE删除表时,会同时删除磁盘上的数据文件来回收...

weixin_30888707的博客 420

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

element el-table表格 没有唯一标识的情况下做多选删除(基于vue)

示例图: 数据示例: 这个时候,如果像官方那样做,是要获取唯一id标识,才能找到勾选中的,这里数据没有标识,那么久只能根据下标来了,但是@selection-change是直接获取不到index下标的。 解决办法: 在上面添加:row-class-name <el-table class="position-table" :data="form.dtlList" border style="width: 100%" :row-class-name="tableRow

weixin_44056717的博客 1241

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

oracle并行删除数据,通过PLSQL同时对200多个表空间进行创建/删除,数据迁移

功 能:创建存储过程,通过PLSQL同时对200多个表空间/用户进行创建/删除,数据迁移适用范围:表空间较多,数据量比较大的数据迁移。以后会逐渐把这种数据库单独放一个实例。已经有一套1TB以上数据量的库,例如csb221。要将此库迁移至另一个系统上的另外一套库csb461。sys sysdba 登陆plsql--0、创建另外一套库的databaselink如果能执行语句就不用创建link。...

weixin_32382353的博客 729

mysql 删除tablespace_MySQL 清除表空间碎片

碎片产生的原因(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;(2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片;(3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被...

weixin_34514378的博客 994

mysql 批量清除表空间_【转】利用optimize、存储过程和系统表对mysql数据库表进行批量碎片清理释放表空间...

本文收集于本人的笔记本,由于找不到原文出处。在此省略,如哪位知道可以联系我加上。核心是利用mysql系统表和“optimize table 表名”命令,对mysql数据表进行空间的释放。由于delete和drop table都不会释放表空间(truncate 命令会释放表空间【将所有的数据都删除】),所以需要利用optimize 命令进行释放。这个存储过程目的是给一个库的所有表来整理碎片的。一个表...

weixin_31901801的博客 421

mysql实现批量删除_mysql 大表批量删除大量数据的实现方法

问题参考自:https://www.zhihu.com/question/440066129/answer/1685329456 ,mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉。请问如何操作?答案为个人原创假设表的引擎是 Innodb, MySQL 5.7+删除一条记录,首先锁住这条记录,数据...

weixin_26976635的博客 2355

通过PLSQL同时对200多个表空间进行创建/删除,数据迁移

功 能:创建存储过程,通过PLSQL同时对200多个表空间/用户进行创建/删除,数据迁移适用范围:表空间较多,数据量比较大的数据迁移。以后会逐渐把这种数据库单独放一个实例。已经有一套1TB以上数据量的库,例如csb221。要将此库迁移至另一个系统上的另外一套库csb461。sys sysdba 登陆plsql--0、创建另外一套库的databaselink如果能执行语...

weixin_34357962的博客 188

ORA-01653: 表空间不足解决办法

ORA-01653: 表COMM_PROMPT_INFO 无法通过 1024 (在表空间 DQYWPT_DEV 中) 扩展. 项目场景: 今天所有业务新增保存时都报ORACLE ORA-01653: unable to extend table 的错误。 问题描述: 错误的具体内容如下: ORA-01653: unable to extend table DQYWPT_DEV .COMM_PROMPT_INFO by 128 in tablespace DQYWPT_DEV 大概意思是说DQYWPT_

qq_41040771的博客 1万+

MySQL 索引深入理解:B+ 树、二级索引、联合索引与查询优化

理解二级索引后,就可以理解回表了。SELECT *MySQL 的执行过程分为三个步骤。覆盖索引(Covering Index)并不是一种独立的索引类型,而是一种查询效果。SQL 查询需要的所有字段,都能够直接从某个索引中获得,不需要再访问聚簇索引获取其他字段。例如:因为user_id已经包含在二级索引中,所以 MySQL 可以直接返回结果。不需要回表。联合索引(Composite Index)是同时使用多个字段建立的索引。它的排序规则是:首先按照user_id排序。当user_id。

m0_64642997的博客 135

MySQL 单点详解(14)

给定一条 SQL,联合索引的列该怎么排呢?

2401_88601046的博客 345

MySQL 的 REPEATABLE READ 到底能不能防幻读——从快照读、当前读到 Next-Key Lock

本文系统讲解 InnoDB 可重复读级别下的幻读问题:从三类读异常切入,剖析快照读依赖 MVCC、当前读依赖 Next-Key Lock 的双防线机制,用双会话实验复现幻读仍会出现的边界场景,并解释各数据库在幻读防护上行为分歧的根源。

大模型全栈工程师 · Thanks_ks 297

Flink SQL 连接器实战:MySQL Source、Flink CDC 与 JDBC Sink 全解析

提供有界流读取,适合批处理和维表场景,简单直接但无法感知变更。MySQL CDC提供无界流读取,通过「全量快照 + binlog 增量」的方式实现实时捕获,是实时数仓的核心入口,但需要 MySQL 侧正确配置 binlog 和权限。JDBC Sink负责结果回写,关键在于区分仅插入流和更新流,更新流必须依赖主键完成 upsert。掌握这三者的差异,本质上就是掌握了 Flink 中「有界与无界」「追加与更新」这两组最基本的语义。

2401_83857914的博客 455
上一篇: 技术分享 | 在GreatDB分布式部署模式中使用Chaos Mesh做混沌测试
下一篇: 技术分享 | 测试git上2500星的闪回小工具
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值