目次
MySQLのファイル形式
MySQLのファイル形式には2パターンあります。
・Antelope … 古いファイル形式。デフォルトではAntelopeが採用されます。
・Barracuda … 新しいファイル形式。テーブルデータの圧縮をサポートします。
MySQL 5.6 リファレンスマニュアル
可能な場合、新しいテーブルには Barracuda 形式を使用することをお勧めしますが、MySQL 5.5 では、異なる MySQL リリースを含むレプリケーション構成との最大限の互換性のために、デフォルトのファイル形式は引き続き Antelope です。
Antelope/Barracuda ファイルフォーマットの種類
- Antelope
・REDUNDANT …MySQL4.1までのフォーマット
・COMPACT …デフォルトだとこれが適用されるようだ。
- Barracuda
・DYNAMIC …データ圧縮を行わないフォーマット
・COMPRESSED …データ圧縮を行うフォーマット
ファイルフォーマットは4種類
Antelope⇒ Barracuda COMPRESSED へ切替
環境
MySQL 5.6
my.cnfの設定
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_file_per_table がオフの場合は、Barracudaは適用されずに、Antelopeが適用される
データベースとテーブル作成
mysql> CREATE DATABASE blog;
Query OK, 1 row affected (0.00 sec)
blogデータベース作成
mysql> use blog;
Database changed
作成したblogへ切替
mysql> CREATE TABLE `blog`.`users` (
-> `id` INT(10) UNSIGNED NULL AUTO_INCREMENT ,
-> `name` VARCHAR(20) NULL ,
-> `email` VARCHAR(200) NULL ,
-> PRIMARY KEY (`id`)
-> ) ENGINE = InnoDB;
Query OK, 0 rows affected (0.02 sec)
usesテーブルを作成
デフォルト状態を確認
mysql> show table status\G
*************************** 1. row ***************************
Name: users
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: 1
Create_time: 2016-07-30 12:06:47
Update_time: NULL
Check_time: NULL
Collation: utf8mb4_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
innodb_file_format = Barracuda で設定を行っているが、
ファイルフォーマットは Antelopeである Compactが適用されている。
mysql> ALTER TABLE users ENGINE = InnoDB ROW_FORMAT=COMPRESSED;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
ファイルフォーマットをBarracudaのCOMPRESSEDに変更する。
変更後確認
mysql> show table status\G
*************************** 1. row ***************************
Name: users
Engine: InnoDB
Version: 10
Row_format: Compressed
Rows: 0
Avg_row_length: 0
Data_length: 8192
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 1
Create_time: 2016-07-30 12:16:22
Update_time: NULL
Check_time: NULL
Collation: utf8mb4_general_ci
Checksum: NULL
Create_options: row_format=COMPRESSED
Comment:
1 row in set (0.00 sec)
無事、Row_format: Compressed に切替ができました。
CREATE TABLEでCOMPRESSEDにを指定することも可能です。