mysql单文件存储删除数据文件容量不会减少bug和解决方案

一个MySQL错误:InnoDB ibdata1不会收缩后被删除的数据



问题描述



当InnoDB引擎使用一个单独的文件存储在数据库中的数据被删除,文件的大小不会改变,这意味着该文件会越来越大。即使它被删除,它也不会允许磁盘释放空间。

验证过程



创建一个用于测试使用的表,并创建一个像T这样的表。


创建一个简单的存储过程来批量插入数据。


在开始之前查看文件的大小


批处理后插入数据接近十万。


然后执行删除操作。


磁盘空间的占用没有减少。

解决方案

两种方式:



1。删除第一个备份后导入


就Uxxx -通过所有数据库> db.sql
停止MySQL服务
RM ibdata
日志文件
启动mysql服务
MySQL Uxxx -通过<< db.sql


2、将表设置为单表存储的形式,使每个表中的数据单独存储,当数据被删除时,存储空间将随着数据的删除而释放。


在全球innodb_file_per_table =


总结

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,你可以留言。