1.检查binlog ,可以设置默认保存10天
所有log有关字段
show variables like '%log%';
查看当前日志保存天数mysql8.0默认2592000秒,30天:
https://blog.csdn.net/vkingnew/article/details/81953350
show variables like '%expire%';
查看binlog日志大小限制,默认1G或512M
SHOW VARIABLES LIKE '%binlog_size%';
my.ini或cnf中有两个设置:
此方法需要重启mysql,两个都设置默认以秒为准
[mysqld]模块
binlog_expire_logs_seconds=604800 ##8.0设置7天
#expire_logs_days = 10 ## 日志保留天数
#max_binlog_size = 100M ##日志滚动值
此方法不用重启
set global expire_logs_days=10
set binlog_expire_logs_seconds=604800
刷新日志
flush logs;
show master status
手动删除日志
https://www.jb51.net/article/109234.htm
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); //清除3天前binlog日志BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。
2.DELETE FROM tb WHERE id = ''并不会释放空间,
查看数据库某个表占用空间,information_schema库,
不加and,查询库里所有的表
SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA='ztoai'
AND TABLE_NAME='test_ztoai_spider_logistics_routematrix_3_7'
进入相应库下优化表
OPTIMIZE TABLE test_ztoai_spider_logistics_routematrix_3_7
把原数据插入新表,把源表TRUNCATE TABLE 一下
TRUNCATE TABLE 表名
navicat for mysql 的 删减表 和清空表的区别
在执行速度上truncate的速度要大于delete,因为delete是逐行删除
还有一个,delete后不释放数据库空间,而truncate执行后,会释放空间