The attribute KEY_BLOCK_SIZE is permitted only when
        ROW_FORMAT is specified as COMPRESSED or is omitted.
        Specifying a KEY_BLOCK_SIZE with any other ROW_FORMAT
        generates a warning that you can view with SHOW
        WARNINGS. However, the table is non-compressed; the
        specified KEY_BLOCK_SIZE is ignored).
        
| Level | Code | Message | 
|---|---|---|
| Warning | 1478 |  InnoDB: ignoring KEY_BLOCK_SIZE= | 
        If you are running in InnoDB strict mode, the combination of a
        KEY_BLOCK_SIZE with any ROW_FORMAT other than COMPRESSED
        generates an error, not a warning, and the table is not created.
      
        Table 3.1, “Meaning of CREATE TABLE and ALTER TABLE options”
        summarizes how the various options on CREATE TABLE and
        ALTER TABLE are handled.
      
Table 3.1. Meaning of CREATE TABLE and ALTER TABLE options
| Option | Usage | Description | 
|---|---|---|
| ROW_FORMAT=REDUNDANT | Storage format used prior to MySQL 5.0.3 | Less efficient than ROW_FORMAT=COMPACT; for backward compatibility | 
| ROW_FORMAT=COMPACT | Default storage format since MySQL 5.0.3 | Stores a prefix of 768 bytes of long column values in the clustered index page, with the remaining bytes stored in an overflow page | 
| ROW_FORMAT=DYNAMIC | Available only with innodb_file_format=Barracuda | Store values within the clustered index page if they fit; if not, stores only a 20-byte pointer to an overflow page (no prefix) | 
| ROW_FORMAT=COMPRESSED | Available only with innodb_file_format=Barracuda | Compresses the table and indexes using zlib to default compressed page
                size of 8K bytes; implies ROW_FORMAT=DYNAMIC | 
| KEY_BLOCK_SIZE= | Available only with innodb_file_format=Barracuda | Specifies compressed page size of 1, 2, 4, 8 or 16K bytes; implies ROW_FORMAT=DYNAMICandROW_FORMAT=COMPRESSED | 
        Table 3.2, “CREATE/ALTER TABLE Warnings and Errors when InnoDB
          Strict Mode is OFF”
        summarizes error conditions that occur with certain combinations
        of configuration parameters and options on the CREATE TABLE or
        ALTER TABLE commands, and how the options appear in the output
        of SHOW TABLE STATUS.
      
        When InnoDB strict mode is OFF, InnoDB
        creates or alters the table, but may ignore certain settings, as
        shown below. You can see the warning messages in the MySQL
        error log. When InnoDB strict mode is ON,
        these specified combinations of options generate errors, and the
        table is not created or altered. You can see the full
        description of the error condition with SHOW
        ERRORS. For example:
        
mysql>CREATE TABLE x (id INT PRIMARY KEY, c INT)->ENGINE=INNODB KEY_BLOCK_SIZE=33333;ERROR 1005 (HY000): Can't create table 'test.x' (errno: 1478) mysql>SHOW ERRORS;+-------+------+-------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------+ | Error | 1478 | InnoDB: invalid KEY_BLOCK_SIZE=33333. | | Error | 1005 | Can't create table 'test.x' (errno: 1478) | +-------+------+-------------------------------------------+ 2 rows in set (0.00 sec)
Table 3.2. CREATE/ALTER TABLE Warnings and Errors when InnoDB
          Strict Mode is OFF
| Syntax | Warning or Error Condition | Resulting ROW_FORMAT, as shown inSHOW TABLE STATUS | 
|---|---|---|
| ROW_FORMAT=REDUNDANT | None | REDUNDANT | 
| ROW_FORMAT=COMPACT | None | COMPACT | 
| ROW_FORMAT=COMPRESSEDorROW_FORMAT=DYNAMICorKEY_BLOCK_SIZEis
                specified | Ignored unless you override the default settings for innodb_file_formatandinnodb_file_per_table | COMPACT | 
| Invalid KEY_BLOCK_SIZEis specified (not 1, 2, 4, 8 or 16) | KEY_BLOCK_SIZEis ignored | the requested one, or COMPACTby default | 
| ROW_FORMAT=COMPRESSEDand validKEY_BLOCK_SIZEare specified | None; KEY_BLOCK_SIZEspecified is used, not the 8K default | COMPRESSED | 
| KEY_BLOCK_SIZEis specified withREDUNDANT,COMPACTorDYNAMICrow format | KEY_BLOCK_SIZEis ignored | REDUNDANT,COMPACTorDYNAMIC | 
| ROW_FORMATis not one ofREDUNDANT,COMPACT,DYNAMICorCOMPRESSED | Ignored if recognized by the MySQL parser. Otherwise, an error is issued. | COMPACTor N/A | 
        When InnoDB strict mode is ON
        (innodb_strict_mode=1), the InnoDB storage engine
        rejects invalid ROW_FORMAT or KEY_BLOCK_SIZE parameters. For
        compatibility with the built-in InnoDB in MySQL, InnoDB strict mode is not
        enabled by default, and in this default non-strict mode, the
        InnoDB storage engine issues warnings (not errors) for ignored invalid
        parameters.
      
        Note that it is not possible to see the chosen KEY_BLOCK_SIZE
        using SHOW TABLE STATUS. The command
        SHOW CREATE TABLE displays the
        KEY_BLOCK_SIZE (even if it was ignored by InnoDB). The real
        compressed page size inside InnoDB cannot be displayed by
        MySQL.
      
This is the User’s Guide for InnoDB storage engine 1.1 for MySQL 5.5, generated on 2010-04-13 (revision: 19994) .

