`
oliver_peng
  • 浏览: 44520 次
  • 性别: 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 是 MySQL 中的一种存储引擎,它具有高性能和可靠性的特点。然而,在 InnoDB 中,删除数据后,并不会真正释放磁盘空间,而是将其标记为删除。这就导致 InnoDB 数据库文件不断...

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

    然而,这也会导致数据库文件持续增大,即使数据已被删除,占用的磁盘空间仍然没有释放。 为了解决这个问题,一种有效的方法是在创建数据库时启用`innodb_file_per_table`选项。这个参数使得每个InnoDB表拥有独立的...

    InnoDB 中文参考手册(CHM)

    InnoDB支持ACID事务,包括四种隔离级别:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ,MySQL默认级别)和串行化(SERIALIZABLE)。事务的回滚(ROLLBACK)和提交...

    innodb存储引擎修改表共享空间为独立空间

    - 删除InnoDB表空间文件时要谨慎,因为这将永久删除所有数据。 - 数据库重启后,如果出现错误,应检查错误日志以诊断问题。 5. **优点与缺点** - 独立表空间的优点在于更好的资源隔离,更方便的备份和维护,但...

    辛星笔记之InnoDB索引

    - **局限性**:二分查找要求数据集事先已排序,并且适用于静态数据集,频繁的插入和删除操作会导致排序成本增加。 ##### 平衡二叉树 平衡二叉树,又称为AVL树,是在二叉查找树的基础上进一步优化的一种数据结构,...

    innodb详细架构

    - 管理磁盘空间分配和回收。 - 负责物理文件的创建、删除和重命名等操作。 7. **操作系统接口** - 作为InnoDB与其他操作系统之间的桥梁,提供底层文件I/O、线程管理和时间服务等功能。 #### 五、架构比较 通过...

    MySQL 中如何优化表释放表空间

    3. 删除数据并不会立即释放磁盘空间,因为MySQL只会标记数据为已删除,而不会实际清理。这会导致数据碎片,占用额外的硬盘空间。 数据碎片的清理: 要清理因删除操作产生的数据碎片,官方推荐使用`OPTIMIZE TABLE`...

    myisam innodb对比1

    - 缺点:删除大量数据后可能留下大量空闲空间,不适合需要频繁统计或清理的场景。 - **多表空间存储(独占表空间存储)**:每个表拥有自己独立的表空间文件,通常文件名为表名加上 `.ibd` 扩展名。 - 优点:单个...

    mysql innodb引擎 知识点总结

    11. **表空间与段**:InnoDB表可以存在于系统表空间或单独的表空间中,而段是存储在表空间内的逻辑分区,如数据段、索引段等。 12. **InnoDB的锁**:InnoDB支持多种锁类型,包括共享锁(S锁)、独占锁(X锁)、意向...

    MySQL新特性 For innodb 8.0

    7. **Optimized InnoDB Buffer Pool**: InnoDB缓冲池的管理得到优化,提高了内存使用效率,减少了磁盘I/O。新的缓冲池实例和空间分区策略能够更好地应对大规模数据和高并发场景。 8. **Improved Performance Schema...

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

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

    数据库引擎 MyISAM 和 InnoDB 对比

    - **InnoDB**则会物理删除行,并且可以通过设置参数来优化空间回收。 5. **数据导入导出**: - **MyISAM**支持`LOAD DATA INFILE`语句直接从文件导入数据,非常高效。 - **InnoDB**虽然也支持此功能,但在某些...

    13为什么表数据删掉一半,表文件大小不变?.pptx

    当我们插入100,000条数据并删除其中50,000条时,InnoDB只会记录这些记录已被删除,但不会立即释放空间。如果之后有新的插入操作,这些被标记为删除的空间可以被新数据复用,这就是所谓的“空洞”。 数据页的复用...

    MySQL 技术内幕:InnoDB存储引擎

    6. **压缩功能**:InnoDB 1.2版本以后支持压缩表空间,可以节省磁盘空间并减少I/O操作,从而提高性能。 ### InnoDB存储引擎的工作原理 - **缓冲池**:InnoDB使用一个称为缓冲池的数据结构来缓存数据和索引,这样...

    MySQL高级-第07章-InnoDB数据存储结构

    这是InnoDB磁盘I/O的基本单位,所有的数据和索引都存储在这些页中。页包含了各种类型的信息,如数据行、B+树节点、插入缓冲、系统页等。 2. **B+树(B+ Tree)** InnoDB使用B+树作为索引的数据结构,这使得快速...

Global site tag (gtag.js) - Google Analytics