清理MySQL数据

1、清理binlog日志

测试过程中如果产生了大量binlog日志,如下:

901M mysql-bin.000015

903M mysql-bin.000016

901M mysql-bin.000017

901M mysql-bin.000018

901M mysql-bin.000019

901M mysql-bin.000020

901M mysql-bin.000021

901M mysql-bin.000022

903M mysql-bin.000023

901M mysql-bin.000024

901M mysql-bin.000025

901M mysql-bin.000026

901M mysql-bin.000027

903M mysql-bin.000028

901M mysql-bin.000029

903M mysql-bin.000030

901M mysql-bin.000031

901M mysql-bin.000032

901M mysql-bin.000033

可以使用如下命令删除binlog日志:

sql 复制代码
-- 'mysql-bin.000033' 根据实际情况修改
-- 会删除mysql-bin.000033之前的binlog日志
PURGE BINARY LOGS TO 'mysql-bin.000033';

2、清空表数据

如果表数据量较大,需要保留其中一些记录,删除剩余数据,可以使用如下命令实现:

表名:t_app

条件:保留 app_id = 666 的数据

sql 复制代码
-- 1. 创建新表(复制结构)
CREATE TABLE t_app_new LIKE t_app;

-- 2. 插入需要保留的数据
INSERT INTO t_app_new
SELECT *
FROM t_app
WHERE app_id != '666';

-- 3. 重命名表(原子操作,瞬间完成)
RENAME TABLE t_app TO t_app_old,
             t_app_new TO t_app;

-- 4. 确认无误后删除旧表
DROP TABLE t_app_old;
相关推荐
小白男神7 小时前
MySQL进阶学习四(存储过程、游标、触发器)
mysql
这个DBA有点耶7 小时前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G7 小时前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备8 小时前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远8 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
kybs19919 小时前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
2601_962218619 小时前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
程序猿_极客10 小时前
【免费】分享一套优质的基于SSM的校园失物招领系统的设计与实现,源码+文档+视频详解(讲解)
java·mysql·ssm·课程设计·失物招领系统
张洛闻Eren10 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安10 小时前
MySQL-触发器
数据库·mysql