1.table

Innodb压缩表可以在独占表空间中,共享表空间中使用,不可以在系统表空间中使用。因为系统表空间中包含的系统数据是从来不压缩的。

在独占表空间中创建一个压缩表的操作步骤:

  1. SET GLOBAL innodb_file_per_table=1;
  2. SET GLOBAL innodb_file_format=Barracuda;
  3. CREATE TABLE t1
  4. (c1 INT PRIMARY KEY)
  5. ROW_FORMAT=COMPRESSED
  6. KEY_BLOCK_SIZE=8;

在一般表空间中创建一个压缩表的操作步骤:
创建一般表空间时必须指定FILE_BLOCK_SIZE的值。KEY_BLOCK_SIZE必须等于FILE_BLOCK_SIZE/1024

mysql> CREATE TABLESPACE `ts2` ADD DATAFILE 'ts2.ibd' FILE_BLOCK_SIZE = 8192 Engine=InnoDB;

mysql> CREATE TABLE t4 (c1 INT PRIMARY KEY) TABLESPACE ts2 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;