`
oliver_peng
  • 浏览: 43128 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何释放已删除的InnoDB磁盘空间

阅读更多
Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。如果想彻底释放这些已经删除的数据,需要把数据库导出,删除InnoDB数据库文件,然后再倒入。 下面是基本的步骤:

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

2 停止MySQL

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

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

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

有一点要注意,你配置了MySQL数据库复制,当你导入数据库备份文件的时候,所有的Query都可能会被写入Binlog,可以执行SET SQL_LOG_BIN = 0;暂时停止Binlog的写入。

还有一种方式是在创建数据库的时候设置innodb_file_per_table,这样InnoDB会对每个表创建一个数据文件,然后只需要运行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间。
分享到:
评论
2 楼 oliver_peng 2010-07-06  
myreligion 写道
dump出来的东西里面没有query吧?

而且binlog里面也没有query吧?

http://ftp.ku.ac.th/pub/mirror/mysql/doc/refman/5.1/en/binary-log.html

引用

The binary log is not used for statements such as SELECT or SHOW that do not modify data.


我所指的是Insert Query。
1 楼 myreligion 2010-07-06  
dump出来的东西里面没有query吧?

而且binlog里面也没有query吧?

http://ftp.ku.ac.th/pub/mirror/mysql/doc/refman/5.1/en/binary-log.html

引用

The binary log is not used for statements such as SELECT or SHOW that do not modify data.

相关推荐

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

    Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。 如果在创建数据库的时候设置innodb_file_per_table=1,这样InnoDB会对每个表创建一个数据文件,...

    undrop-for-innodb:适用于MySQLInnoDB的TwinDB数据恢复工具包

    InnoDB表空间损坏。 硬盘故障。 文件系统损坏。 记录已从表中删除。 一张桌子被截断了。 InnoDB文件被意外删除。 删除了一个表并创建了一个空表。 安装 附带安装说明和演示,以获取InnoDB概述。 该工具包的...

    Mysql删除数据以及数据表的方法实例

    对于 MyISAM 会立刻释放磁盘空间,InnoDB 不会释放磁盘空间。 delete from User; 释放磁盘空间 optimize table User; 删除数据表 删除数据表分为两种方式: 删除数据表内数据以及表结构 只删除表内数据,保留...

    Mysql单文件存储删除数据文件容量不会减少的bug与解决方法

    当innodb引擎使用单个文件进行存储的时候,当对数据库中数据进行删除的时候,文件的大小并不会发生变化,意味着文件将会越来越大并且即使删除也没办法 让其释放磁盘的空间。 验证过程 创建一个测试使用的表,如下...

    MySQL学习笔记之为什么表数据删掉一半,表文件大小不变(十三)

    1.参数 innodb_file_per_table 表数据既可以存在共享表空间里,也可以是...当我们删除R4这个记录,InnoDB引擎会把R4,标记为删除,以后再插入一个 ID 在 300-600之间的记录,就会复用这个位置。但是磁盘文件的大小不会

    mysql数据库my.cnf配置文件

    # InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间 # 独立表空间优点: # 1.每个表都有自已独立的表空间。 # 2.每个表的数据和索引都会存在自已的表空间中。 # 3.可以实现单表在不同的数据库中...

    MySQL问答系列之什么情况下会用到临时表

    什么是临时表:MySQL用于存储一些中间结果集的表,临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。为什么会产生临时表:一般是由于复杂的SQL导致临时表被大量创建 临时表分为两种,一种是...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    3.3.7 人工误删除innodb ibdata数据文件,如何恢复 97 3.3.8 update忘加where条件误操作恢复(模拟oracle闪回功能) 99 3.3.9 delete忘加where条件误操作恢复(模拟oracle闪回功能) 108 第4章 同步复制报错故障...

    MySQL 5.1中文手冊

    添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. InnoDB性能调节提示 15.2.12. 多版本的实施 15.2.13. 表和...

    MySQL 5.1参考手册 (中文版)

    添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. InnoDB性能调节提示 15.2.12. 多版本的实施 15.2.13. 表和...

    mysql官方中文参考手册

    添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. InnoDB性能调节提示 15.2.12. 多版本的实施 15.2.13. 表和...

    MYSQL中文手册

    7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化SELECT语句和其它查询 7.2.1. EXPLAIN语法(获取SELECT相关信息) 7.2.2. 估计查询性能 7.2.3. SELECT查询的速度 ...

    MySQL 5.1参考手册中文版

    7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化SELECT语句和其它查询 7.2.1. EXPLAIN语法(获取SELECT相关信息) 7.2.2. 估计查询性能 7.2.3. SELECT查询的速度 7.2.4...

    MySQL 5.1参考手册

    添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. InnoDB性能调节提示 15.2.12. 多版本的实施 15.2.13. 表和...

    mysql5.1中文手册

    磁盘事宜 7.6.1. 使用符号链接 8. 客户端和实用工具程序 8.1. 客户端脚本和实用工具概述 8.2. myisampack:生成压缩、只读MyISAM表 8.3. mysql:MySQL命令行工具 8.3.1. 选项 8.3.2. mysql...

    MySQL5.1参考手册官方简体中文版

    7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化SELECT语句和其它查询 7.2.1. EXPLAIN语法(获取SELECT相关信息) 7.2.2. 估计查询性能 7.2.3. SELECT查询的速度 7.2.4. ...

    MySQL 5.1官方简体中文参考手册

    7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化SELECT语句和其它查询 7.2.1. EXPLAIN语法(获取SELECT相关信息) 7.2.2. 估计查询性能 7.2.3. SELECT查询的速度 7.2.4. ...

Global site tag (gtag.js) - Google Analytics