Bug #73769 Advisor for non compressed table with compression options

Submitted: 29 Aug 2014 10:40 Modified: 1 Sep 2014 12:43
Reporter: Daniël van Eeden Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Enterprise Monitor: Advisors/Rules Severity:S3 (Non-critical)
Version:3.0 OS:Any
Assigned to: CPU Architecture:Any

[29 Aug 2014 10:40] Daniël van Eeden
Description:
When a table is created with innodb_file_format=Antelope and row_format=compressed the table is not actually compressed as the Antelope format doesn't support compression. 

How to repeat:
See description

Suggested fix:
Create advisor (pseudo cod):
if mysql:tablestatus:Row_format != compressed:
  if mysql:tablestatus:Create_options like '%row_format=compressed%':
    error "Table with failed compression found"
[1 Sep 2014 12:43] MySQL Verification Team
Hello Daniël,

Thank you for the report and contribution.

Thanks,
Umesh
[1 Sep 2014 12:44] MySQL Verification Team
// 

mysql> show variables like 'innodb_file%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_file_format       | Antelope |
| innodb_file_format_check | ON       |
| innodb_file_format_max   | Antelope |
| innodb_file_per_table    | ON       |
+--------------------------+----------+
4 rows in set (0.00 sec)

mysql> create table `test` (`a` int primary key) engine=innodb row_format=compressed;
Query OK, 0 rows affected, 2 warnings (0.03 sec)

mysql> show warnings;
+---------+------+-----------------------------------------------------------------------+
| Level   | Code | Message                                                               |
+---------+------+-----------------------------------------------------------------------+
| Warning | 1478 | InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
| Warning | 1478 | InnoDB: assuming ROW_FORMAT=COMPACT.                                  |
+---------+------+-----------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show create table test\G
*************************** 1. row ***************************
       Table: test
Create Table: CREATE TABLE `test` (
  `a` int(11) NOT NULL,
  PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
1 row in set (0.00 sec)

mysql> show table status like 'test'\G
*************************** 1. row ***************************
           Name: test
         Engine: InnoDB
        Version: 10
     Row_format: Compact          <=========
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2014-09-03 09:07:52
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: row_format=COMPRESSED <====
        Comment:
1 row in set (0.00 sec)

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.050 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.