MySQL InnoDB存储引擎(五):表空间

JerryXia 发表于 , 阅读 (0)

增加InnoDB系统表空间大小

增加InnoDB系统表空间大小的最简单方法就是初始化配置为自动扩展(autoextend)。 在表空间定义中为最后一个数据文件指定autoextend属性,这样InnoDB在空间不足时以64MB的增量自动增加该文件的大小。 可以通过设置innodb_autoextend_increment系统变量的值来更改增量大小(单位为MB)。为了扩展系统表空间,开发人员可通过添加新的数据文件:

关闭数据库;
若之前使用了autoextend,可以将其替换为明确的数据文件名及文件大小,如:
innodb_data_home_dir =# beforeinnodb_data_file_path = /ibdata/ibdata1:988M:autoextend# afterinnodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend		
启动数据库。

减小InnoDB系统表空间大小

InnoDB中,开发人员并不能直接从系统表空间中删除数据文件,为了减小系统表空间,可以执行如下操作:

使用mysqldump备份所有InnoDB表数据;
关闭数据库;
删除所有表空间文件(*.ibd文件),包括ibdataib_log等文件,再删除所有InnoDB表文件(*.frm文件);
配置新的表空间,启动数据库,再导入之前dump的文件。

改变重建日志文件(Redo Log)的数量及大小

若开发人员想改变InnoDB重建日志文件的数量及大小,可以执行如下操作:

正常关闭数据库;
修改my.cnf文件,配置innodb_log_files_in_group(修改文件数量,文件名通常为ib_logfile0, ib_logfile1, ib_logifleN)和(文件大小,若之前有日志文件大小不一致,会先写Checkpoint,再创建新的日志文件);