基础概念
MySQL的缩表(Shrink Table)是指减少表所占用的磁盘空间,通常是通过重建表来实现的。MySQL提供了ALTER TABLE ... ENGINE=InnoDB
命令来重建表,从而释放空间。
相关优势
- 空间优化:缩表可以释放不再使用的磁盘空间,提高磁盘利用率。
- 性能提升:重建表可以优化表的存储结构,提高查询性能。
类型
MySQL的缩表主要通过以下几种方式实现:
- 重建表:使用
ALTER TABLE ... ENGINE=InnoDB
命令重建表。 - 在线DDL:MySQL 5.6及以上版本支持在线DDL操作,可以在不阻塞DML操作的情况下重建表。
应用场景
- 磁盘空间不足:当数据库磁盘空间不足时,可以通过缩表释放空间。
- 表结构优化:在表结构发生变化后,可以通过缩表优化表的存储结构。
查看几天前的缩表记录
要查看MySQL几天前的缩表记录,可以通过查询MySQL的日志文件来实现。MySQL的日志文件包括二进制日志(Binary Log)和慢查询日志(Slow Query Log)。
二进制日志
二进制日志记录了所有的DDL和DML操作,可以通过以下步骤查看:
- 找到二进制日志文件:
- 找到二进制日志文件:
- 使用
mysqlbinlog
工具查看日志: - 使用
mysqlbinlog
工具查看日志: - 例如,查看2023年10月1日到2023年10月5日的缩表记录:
- 例如,查看2023年10月1日到2023年10月5日的缩表记录:
- 搜索缩表记录:
- 搜索缩表记录:
慢查询日志
慢查询日志记录了执行时间较长的SQL语句,可以通过以下步骤查看:
- 找到慢查询日志文件:
- 找到慢查询日志文件:
- 搜索缩表记录:
- 搜索缩表记录:
遇到的问题及解决方法
问题:为什么无法查看缩表记录?
原因:
- 日志未开启:MySQL的二进制日志或慢查询日志未开启。
- 日志文件被删除或移动:日志文件被删除或移动,导致无法查看。
解决方法:
- 开启日志:
- 开启日志:
- 检查日志文件路径:
- 检查日志文件路径:
- 恢复日志文件:如果日志文件被删除或移动,可以尝试从备份中恢复。
参考链接
希望这些信息对你有所帮助!