Ubuntu 下 MySQL 数据库空间管理
一 快速定位占用
df -hsudo du -sh /var/lib/mysqlSELECT table_schema AS '数据库', ROUND(SUM(data_length + index_length)/1024/1024, 2) AS '大小(MB)' FROM information_schema.tables GROUP BY table_schema;SHOW TABLE STATUS FROM your_database_name;二 安全释放空间的常用操作
DROP DATABASE db_name;DROP TABLE tbl_name;OPTIMIZE TABLE tbl_name;SHOW BINARY LOGS;PURGE BINARY LOGS TO 'mysql-bin.00000X';PURGE BINARY LOGS BEFORE '2025-01-01 00:00:00';mysqldump -u user -p db_name tbl_name --where="created_at < '2024-01-01'" > tbl_archive.sqlDELETE FROM tbl_name WHERE created_at < '2024-01-01';(可分批次执行避免长时间锁表)三 自动化与运维建议
mysqldump -u your_user -p your_database > your_database_backup.sqldf -h 或监控磁盘使用率,超过阈值及时告警与处理。expire_logs_days),自动清理过旧日志,减少手工维护成本。四 应急与风险控制
sudo systemctl restart mysql(仅在确认安全的情况下执行)。