Mysql InnoDB删除数据后释放磁盘空间的方法

 更新时间:2015年04月09日 09:52:19   投稿:junjie  
这篇文章主要介绍了Mysql InnoDB删除数据后释放磁盘空间的方法,Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长,本文就讲解释放磁盘空间的方法,需要的朋友可以参考下

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。

如果在创建数据库的时候设置innodb_file_per_table=1,这样InnoDB会对每个表创建一个数据文件,然后只需要运行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间。

运行OPTIMIZE TABLE 表名后,虽然最后会报Table does not support optimize, doing recreate + analyze instead,但其实已经成功了:)

-------------------------------------------------------------

如果没有设置这个参数,又想释放空间,彻底释放这些已经删除的数据,需要把数据库导出,删除InnoDB数据库文件,然后再倒入。

下面是基本的步骤:

1 使用mysqldump命令将InnoDB数据库导出

2 停止MySQL

3 删除所有InnoDB数据库文件和日志

4 启动MySQL并自动重建InnoDB数据库文件和日志文件

5 导入前面备份的数据库文件

----------------------------------------------

具体命令:

复制代码 代码如下:

# 备份数据库:

mysqldump -uroot -proot --quick --force --all-databases > mysqldump.sql
# 停止数据库

service mysqld stop
# 删除这些大文件
rm /usr/local/mysql/var/ibdata1
rm /usr/local/mysql/var/ib_logfile*
# 手动删除除Mysql之外所有数据库文件夹,然后启动数据库

service mysqld start
# 还原数据

mysql -uroot -proot < mysqldump.sql

相关文章

  • MariaDB 新版本实力逆袭不仅仅是 MySQL 替代品

    MariaDB 新版本实力逆袭不仅仅是 MySQL 替代品

    MariaDB是MySQL源代码的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB 10.0和MySQL 5.6的不同之处有那些,MariaDB和Percona有什么不同呢?下面通过本文详细了解下吧
    2016-12-12
  • CentOS 7下MySQL服务启动失败的快速解决方法

    CentOS 7下MySQL服务启动失败的快速解决方法

    CentOS 7下MySQL服务启动失败怎么办?下面小编就为大家带来一篇CentOS 7下MySQL服务启动失败的快速解决方法。现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-03-03
  • MySQL不能显示中文问题及解决

    MySQL不能显示中文问题及解决

    这篇文章主要介绍了MySQL不能显示中文问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • MYSQL(电话号码,身份证)数据脱敏的实现

    MYSQL(电话号码,身份证)数据脱敏的实现

    在日常开发需求中会经常遇到数据脱敏处理,比如身份证号、手机号,需要使用*进行部分替换显示。这样能使敏感隐私信息在一定程度上得到保护。本文就来介绍一下
    2021-05-05
  • mysql字符集相关总结

    mysql字符集相关总结

    这篇文章主要介绍了Python 中删除文件的几种方法汇总,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • mysql中的判断函数和分支语句详解

    mysql中的判断函数和分支语句详解

    本文介绍了SQL中常用的判断函数和分支语句,判断函数包括if()、ifnull()以及nullif(),用于处理数据判断和空值处理,分支语句分为多条件判断和固定值判断,便于根据不同条件执行相应逻辑,这些功能在数据处理和查询中非常实用
    2024-10-10
  • MySQL中常见的几种日志汇总

    MySQL中常见的几种日志汇总

    这篇文章主要给大家介绍了关于MySQL中常见的几种日志,文中通过实例代码结束的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • MySQL创建表时字符串的默认值问题

    MySQL创建表时字符串的默认值问题

    这篇文章主要介绍了MySQL创建表时字符串的默认值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • mysql与mysqli的区别与用法说明

    mysql与mysqli的区别与用法说明

    mysql是非持继连接函数而mysqli是永远连接函数。
    2010-07-07
  • MySQL深分页问题解决的实战记录

    MySQL深分页问题解决的实战记录

    优化项目代码过程中发现一个千万级数据深分页问题,觉着有必要给大家总结整理下,这篇文章主要给大家介绍了关于解决MySQL深分页问题的相关资料,需要的朋友可以参考下
    2021-09-09

最新评论