ibdata1文件是InnoDB存储引擎的共享表空间文件,该文件中主要存储着下面这些数据: data dictionary double write buffer insert buffer/change buffer rollback segments undo space Foreign key constraint system tables另外,当选项 innodb_file_per_table = 0 时,在ibdata1文件中还需要存储 InnoDB 表数...
MySQL 5.6 版中你也可以创建外部的撤销表空间,所以它们可以放到自己的文件来替代存储到 ibdata1。可以看看这个文档。
在innodb的bufferpool中,有许多dirtypage(就是内存中的数据已经被修改,但是没有写回文件中),如果直接把文件复制回去,轻则数据丢失,重则ibdata1文件损坏。备份mysql数据的时候,也不能直接备份这几个文件,是同样的道理。我们必须保证所有bufferpool中的数据修改都保存到了硬盘文件上面,为此,首先要停止...
在MySQL 5.6.6版本以前,MySQL默认会把所有的innodb的表都放在同一个文件中(ibdata1),当该文件过大的时候,MySQL容易出错,维护性能差。一个简单的办法是修改MySQL配置文件/etc/my.cnf后重启 [mysqld]innodb_file_per_table=1
ibdata1 文件“减肥”的主要方法和步骤包括:了解ibdata1文件内容:系统表空间:存储表和索引数据。独立表空间:由innodb_file_per_table参数定义,新表存储在单独的表空间文件中。通用表空间:通过CREATE TABLESPACE语法创建的共享表空间。UNDO表空间:存储undo logs,可配置多个UNDO表空间。临时表空间:...