博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
InnoDB Plugin文件格式(概述)
阅读量:4661 次
发布时间:2019-06-09

本文共 1810 字,大约阅读时间需要 6 分钟。

本文将介绍InnoDB Plugin数据表格式的基本概念。

1. 配置参数innodb_file_format

这是一个很容易混淆的概念。目前,在InnoDB Plugin(1.0.6)配置文件中innodb_file_format支持两种:Antelope/ˈæntɪləʊp/、Barracuda/ˌbærəˈkjuːdə/。他们分别是两种文件格式的代号,在未来版本中,InnoDB将继续延续这种代号机制,它们会是Antelope, Barracuda, Cheetah, Dragon, Elk, Fox等等。

 

Antelope是Built-in-InnoDB(MySQL内置的InnoDB)支持文件格式的代号,有两种“数据表格式”(row_format):Redundant、Compact;Barracuda是InnoDB Plugin支持的文件格式,在原来的基础上新增了两种数据表格式的支持:Dynamic和Compressed。

对应关系表:

一般,innodb_file_format在配置文件中指定;row_format则在创建数据表时指定。

2. 新建数据表的格式、已有数据表格式

要支持新的数据表格式,我们需要在配置文件中新增配置选项:

innodb_file_format=barracudainnodb_file_per_table = 1innodb_strict_mode=1 #建议加上

 

然后,在创建数据表时,指定参数ROW_FORMAT就可以指定特定的格式了。例如:

CREATE TABLE name (column1 INT PRIMARY KEY) ENGINE=InnoDBROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;

 

这里创建了一个COMPRESSED的数据表,指定压缩后页大小为4K。

一般地,我们通过SHOW CREATE TABLE就可以看到数据表的具体格式了。特别地,我们也可以通过观察ibd的文件头来确定文件的格式:

$od -t x1 -j 54 -N 4 t3.ibd #compact0000066 00 00 00 270000072$od -t x1 -j 54 -N 4 t2.ibd #compressed0000066 00 00 00 000000072

 

3. 文件格式兼容性检查

InnoDB Plugin引入的新的文件格式,也引入较为完整的文件兼容性检查,以防止误操作非兼容的文件格式。兼容性检查一共有三类:启动数据库时、创建数据表时、访问数据表时。

3.1 在数据库启动时候,参数innodb_file_format_check(>=5.1.38)会要求InnoDB在启动时检查当前数据表的格式。设置为ON时,如果检测到不支持的格式,那么InnoDB会启动失败;设置为OFF时,检测到不支持的仅会给出警告,并不会导致启动失败。

把innodb_file_format_check设置为OFF是很危险的。在InnoDB启动后,一般需要做一些恢复工作,例如Double write buffer/Insert buffer中的数据处理(这依赖于innodb_fast_shutdown参数),试想如果成功启动,但是某些表是不支持的格式,但是InnoDB仍然安装旧版本做恢复,这可能会毁掉相关数据。

所以,一般建议innodb_file_format_check设置为ON。如果是OFF,关闭InnoDB的innodb_fast_shutdown参数务必设置成0。

3.2 除了启动时会检查兼容性外,当创建数据表时,InnoDB会依据参数InnoDB_file_format进行检查,如果创建的数据表格式高于InnoDB_file_format,则创建会失败。

3.3 当访问某个数据表(table-access)时,InnoDB也会进行兼容性检查。只要当前运行的InnoDB版本能够支持的格式,都能够被访问,无论参数InnoDB_file_format的配置。

 

 

注:在主从复制中,innodb_file_format应保持一致,innodb_strict_mode和sql_mode也应保持一致。

参考:

转载于:https://www.cnblogs.com/xiaotengyi/p/3659586.html

你可能感兴趣的文章
两个表,一个表中的两列关联另一个表的id,如何将这个表中的两列显示为另一个表id对应的内容...
查看>>
云计算的云数据安全与加密技术
查看>>
从远程服务器数据库中同步数据到本地数据库 sql server 2008 开启分布式事务
查看>>
hdu3081 Marriage Match II(二分+并查集+最大流)
查看>>
git----基础
查看>>
hdoj--1045--Fire Net(二分图)
查看>>
软件测试常用术语
查看>>
字符串转json以及获取域名的参数
查看>>
Bootstrap实现轮播
查看>>
记录一次创建.net core 项目 并且发布到docekr【完全新手入门】
查看>>
element-ui 合并相邻的相同行 span-method
查看>>
Go 获取键盘输入,进制转换
查看>>
Go 循环控制
查看>>
Go 面向对象编程应用
查看>>
Go 接口
查看>>
Go 文件操作
查看>>
ECMAScript版本
查看>>
js数组
查看>>
开车旅行(2012day1T3)
查看>>
splay
查看>>