14.10.3 识别正在使用的文件格式

如果使用innodb_file_format配置选项启用其他file format,则更改仅适用于新创建的 table。同样,当您创建一个新 table 时,包含该 table 的 table 空间将被标记为支持 table 功能所需的“最早”或“最简单”文件格式。例如,如果启用Barracuda文件格式,并创建不使用动态或压缩行格式的新 table,则包含该 table 的新 table 空间将被标记为使用Antelope文件格式。

识别给定 table 使用的文件格式很容易。如果SHOW TABLE STATUS报告的行格式是CompactRedundant,则 table 使用Antelope文件格式。如果SHOW TABLE STATUS报告的行格式是CompressedDynamic,则 table 使用Barracuda文件格式。

mysql> SHOW TABLE STATUS\G
*************************** 1. row ***************************
           Name: t1
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 16384
      Data_free: 0
 Auto_increment: 1
    Create_time: 2014-11-03 13:32:10
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment:

您还可以使用InnoDB INFORMATION_SCHEMA个 table 来标识给定 table 或 table 空间使用的文件格式。例如:

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME='test/t1'\G
*************************** 1. row ***************************
     TABLE_ID: 44
         NAME: test/t1
         FLAG: 1
       N_COLS: 6
        SPACE: 30
  FILE_FORMAT: Antelope
   ROW_FORMAT: Compact
ZIP_PAGE_SIZE: 0

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE NAME='test/t1'\G
*************************** 1. row ***************************
        SPACE: 30
         NAME: test/t1
         FLAG: 0
  FILE_FORMAT: Antelope
   ROW_FORMAT: Compact or Redundant
    PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0