Skip to content

innodb_file_format

xiaoboluo768 edited this page Jun 14, 2020 · 2 revisions
  • 配置innodb的文件格式,目前支持barracuda、antelope两种,配置为antelope时Innodb表可以使用redundant和compact两种行格式,配置为barracuda时,innodb表可以使用redundant和compact,compressed和dynamic四种行格式。
    • 修改这个参数记得session和global以及配置文件my.cn都要同步修改,且表定义中需要添加ROW_FORMAT= xxx行格式配合使用
    • 可以通过参数innodb_file_format_check来检测当前InnoDB存储引擎文件格式的支持度,默认为ON。
    • 默认innodb_file_format为antelope,如果没有很多大字段时,建议使用默认的antelope文件格式和compact的行格式,适用于绝大多数场景,如果有很多大字段,需要采用innodb_file_format为barracuda,建议行格式使用dynamic(使用compressed和dynamic行格式时,还需要参数开启参数innodb_file_per_table=1支持),不建议使用compressed格式(因为innodb_buffer中的pages无法压缩,只能压缩保存到磁盘中的page)。另外,barracuda文件格式适用于不需要经常修改和备份的表
    • 全局变量,动态变量(修改文件格式时,不影响已经存在的innodb表的行格式),默认值为antelope(5.7.7版本开始默认值为barracuda),字符串类型值。
    • PS:在5.7.x的文档中,对于使用dynamic和compressed格式的描述变了,对于使用dynamic行格式,则会自动忽略innodb_file_format参数设置直接使用Barracuda文件格式。对于使用compressed格式,则必须把innodb_file_format设置为barracuda。另外,在5.7.x文档中说该参数是将要废弃的功能, innodb_file_format选项的目的是允许用户降级到MySQL 5.1中的内置版本的InnoDB。 现在,MySQL 5.1已经到了其产品生命周期的终点,不再需要此选项提供的降级支持。在8.0版本中已经移除了该配置参数。

上一篇:innodb_flush_method | 下一篇:innodb_log_file_size

Clone this wiki locally