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;