清理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;
相关推荐
满天星83035771 天前
【MySQL】索引
linux·服务器·数据库·mysql
InfinteJustice1 天前
mysql如何设计积分系统_mysql流水账与余额对账
jvm·数据库·python
NotFound4861 天前
Golang怎么实现防重复提交_Golang如何用Token机制防止表单重复提交【技巧】
jvm·数据库·python
2401_865439631 天前
CSS如何实现图片自动裁剪填充_巧用object-fit属性控制尺寸
jvm·数据库·python
m0_748839491 天前
HTML函数能否用液态金属散热提升性能_极端散热方案实测【汇总】
jvm·数据库·python
2301_803538951 天前
mysql添加索引导致插入变慢怎么办_索引优化与异步处理方案
jvm·数据库·python
2301_782659181 天前
如何防止SQL脏数据写入_利用触发器实现强一致性校验
jvm·数据库·python
2301_817672261 天前
如何实现元素从底部进入视口时触发 sticky 定位
jvm·数据库·python
InfinteJustice1 天前
mysql如何排查插件加载失败原因_mysql plugin目录与权限核对
jvm·数据库·python
qq_189807031 天前
Go语言怎么连接Elasticsearch_Go语言Elasticsearch教程【收藏】
jvm·数据库·python