本文为mariadb官方手册:XtraDB/InnoDB File Format的译文。

原文:https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/xtradbinnodb-file-format/

目前,XtraDB/InnoDB支持两种格式的存储文件:Antelope(羚羊)和Barracuda(梭鱼)(译者注:动物的名称,且首字母从前到后排列,本文结尾还提到了26种文件格式,全是动物名命名)。可以通过服务器变量innodb_file_format设置文件的格式。默认设置为Antelope。在MySQL 5.5.0和5.5.6版本之间的文件格式默认为Barracuda,但这种格式在升级的时候,某些情况下可能会导致复制(replication)出现问题,因此在MariaDB中默认的格式总是设置为Antelope。

系统表空间使用Antelope文件格式,且无法更改。基于此,为了让用户表使用Barracuda格式,需要设置变量innodb_file_per_table

MariaDB starting with 10.0

从MariaDB 10.0开始,可以从表Information Schema INNODB_SYS_TABLES中查看到所使用的文件格式。

兼容性

每个表空间都会用它最近所使用的表的文件格式id进行标记。所有版本的XtraDB/InnoDB都可以读取较旧文件格式的表。但是,无法读取更新一些格式的表。基于此原因,每次XtraDB/InnoDB打开一个表时都会检查表空间的格式,并且在发现使用了新文件格式时报错。

(原文:Each tablespace is tagged with the id of the most recent file format used by one of its tables. All versions of XtraDB/InnoDB can read tables that use an older file format. However, it can not read from more recent formats. For this reason, each time XtraDB/InnoDB opens a table it checks the tablespace's format, and returns an error if a newer format is used.)

可以通过设置变量innodb_file_format_check来跳过检查。但注意,在发现了未知格式时,XtraDB/InnoDB会尝试修复该表,从而损坏表。这种情况会发生在禁用了innodb_file_format_check变量后服务器崩溃,或者使用快速停止服务(fast shutdown)时。

要从Barracuda格式降级为Antelope格式,可以通过ALTER TABLE语句设置表的ROW_FORMAT为支持Antelope的值。这会重建索引。

Antelope格式的表可以在MariaDB和低于5.5版本的MySQL上正常工作。

注意,表空间会被标记为支持所使用的行格式(row format)的最低文件格式。因此,即使启用的是Barracuda,但如果使用的行格式为Compact或Redundant,表格式也会被标记为Antelope。

Antelope

Antelope是InnoDB的原始文件格式,支持COMPACT和REDUNDANT行格式,但不支持动态或压缩行格式。

Barracuda

Barracuda是一种更新的InnoDB文件格式,支持COMPACT、REDUNDANT、DYNAMIC和COMPRESSED行格式。带有BLOB或TEXT数据类型的表可大幅受益于dynamic行格式。

未来的格式

未来XtraDB/InnoDB可能会使用新的文件格式。每种格式都有自己的名称,它们的标识符id从0-25。这些名称已经想好了,全是根据字母表顺序决定的动物名:Antelope, Barracuda, Cheetah, Dragon, Elk, Fox, Gazelle, Hornet, Impala, Jaguar, Kangaroo, Leopard, Moose, Nautilus, Ocelot, Porpoise, Quail, Rabbit, Shark, Tiger, Urchin, Viper, Whale, Xenops, Yak和Zebra。

XtraDB/InnoDB的文件格式(已提交到MariaDB官方手册)的更多相关文章

  1. 翻译:XtraDB/InnoDB中的AUTO_INCREMENT处理方式(已提交到MariaDB官方手册)

    本文为mariadb官方手册:XtraDB/InnoDB中的AUTO_INCREMENT处理方式的译文. 原文:https://mariadb.com/kb/en/auto_increment-han ...

  2. 翻译:CREATE FUNCTION语句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:CREATE FUNCTION的译文. 原文:https://mariadb.com/kb/en/library/create-function/我提交到MariaDB官 ...

  3. 翻译:SET PASSWORD语句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:SET PASSWORD的译文. 原文:https://mariadb.com/kb/en/library/set-password/我提交到MariaDB官方手册的译文 ...

  4. 翻译:SET Variable(已提交到MariaDB官方手册)

    本文为mariadb官方手册:SET Variable的译文. 原文:https://mariadb.com/kb/en/set-variable/我提交到MariaDB官方手册的译文:https:/ ...

  5. 翻译:DECLARE Variable(已提交到MariaDB官方手册)

    本文为mariadb官方手册:DECLARE Variable的译文. 原文:https://mariadb.com/kb/en/library/declare-variable/我提交到MariaD ...

  6. 翻译:赋值操作符(:=)(已提交到MariaDB官方手册)

    本文为mariadb官方手册:赋值操作符(:=)的译文. 原文:https://mariadb.com/kb/en/assignment-operator/ 我提交到MariaDB官方手册的译文:ht ...

  7. 翻译:last_value()函数(已提交到MariaDB官方手册)

    本文为mariadb官方手册:LAST_VALUE()的译文. 原文:https://mariadb.com/kb/en/last_value/我提交到MariaDB官方手册的译文:https://m ...

  8. 翻译:group_concat()函数(已提交到MariaDB官方手册)

    本文为mariadb官方手册:group_concat()函数的译文. 原文:https://mariadb.com/kb/en/group_concat/ 我提交到MariaDB官方手册的译文:ht ...

  9. 翻译:SET子句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:SET的译文. 原文:https://mariadb.com/kb/en/set/我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh ...

随机推荐

  1. 如何从本地远程访问虚拟机内的Mysql服务器?

    假设重装了操作系统,则本地的很多软件可能都需要重新安装,比如数据库.但是,假设我们把一些重要的软件安装在虚拟机当中,则在重装操作系统之前,数据库服务器可以和虚拟机一起进行备份.重装操作系统之后,原先的 ...

  2. Mac 下 python 环境问题

    一.Mac下,可能存在的 python 环境: 1.Mac系统自带的python环境在(由于不同的 mac 系统,默认自带的 python 版本可能不一样): Python 2.7.10: /Syst ...

  3. 2018年2月19日我的java学习(——)

    在学完了类和对象的时候,开始对面向对象的思想有了一点认识,不过也不是完全的理解了. 就现在的学习状态来说,是非常的不错的,但是在学习的内容来说,我学的好像只是跟随这 站长的思路而已,也许是经验不足吧. ...

  4. 为什么我们要使用int类型来保存时间类型的数据。

    1.如果数据保存的是timestamp类型那么,如果某个服务器系统时区配置错误,那么悲剧的是通过该服务器写入的时间都是有偏差的.  如果使用int类型保存unix时间戳的话,那么就是在前端展示的时候转 ...

  5. js怎么实现继承?

    3. js怎么实现继承? 1. 使用原型prototype 这个问题其实之前总结过了……但是面试时候有点忘……主要思想是记得的,但是不会写,还是基础太不牢靠,写的太少了.一开始因为不知道怎么能继承父类 ...

  6. 先序遍历DOM树的5种方法

    DOM树由文档中的所有节点(元素节点.文本节点.注释节点等)所构成的一个树结构,DOM树的解析和构建是浏览器要实现的关键功能.既然DOM树是一个树结构,那么我们就可以使用遍历树结构的相关方法来对DOM ...

  7. 【高速接口-RapidIO】4、Xilinx RapidIO核详解

    一.RapidIO核概述 RapidIO核的设计标准来源于RapidIO Interconnect Specification rev2.2,它支持1x,2x和4x三种模式,每通道的速度支持1.25G ...

  8. JVM垃圾收集器与内存分配策略(一)

    在前面的Java自动内存管理机制(上)和Java自动内存管理机制(下)中介绍了关于JVM的一些基础知识,包括运行时数据区域划分和一些简单的参数配置,而其中也谈到了GC,但是没有深入了解,所以这里开始简 ...

  9. 分布式文件系统 / MQ / 鉴权(轮廓)

    FastDFS的轮廓   /  RabbitMQ的轮廓  /  JWT和RSA非对称加密的轮廓

  10. Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配

    分布式程序运算是一种水平扩展(scale-out)运算模式,其核心思想是能够充分利用服务器集群中每个服务器节点的计算资源,包括:CPU.内存.硬盘.IO总线等.首先对计算任务进行分割,然后把细分的任务 ...