MySQL数据库truncate表以后,通过命令查询表大小,发现已经释放了,但是MySQL数据文件ibdata1一直占用空间比较大
具体步骤:
备份数据库:
mysqldump -uroot -proot –quick –force –all-databases –events > mysqldump.sql停止数据库
service mysqld stop删除这些大文件
rm /usr/local/mysql/var/ibdata1
rm /usr/local/mysql/var/ib_logfile*手动删除/usr/local/mysql/var/下除了Mysql之外所有数据库文件夹,然后启动数据库
service mysqld start重新导入数据
mysql -uroot -proot < mysqldump.sql
参考内容:
- Mysql 查询表所占用的空间大小
SELECT TABLE_NAME,TABLE_ROWS,DATA_LENGTH/1024/1024 "DATA_LENGTH",CREATE_TIME,TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_ROWS DESC;