あれがのめる

のめるぞ( ´ω`)あれがのめるぞー

・・・酒ではない何か。
日本全国あれ飲み音頭 by バラクーダではない何か

で、Barracuda。
Seagateの何かではなく、MySQLのお話。

InnoDB: highest supported file format is Barracuda.

ていうメッセージ。
長いこと何だろうなーと思い続けていたのですがようやく氷解。
1.がAntelope。
2.がBarracuda。
3.がCheetah。
以下略、26まで。
今のところAntelopeがデフォルトのファイルフォーマットで、
Barracudaが圧縮機能付きのファイルフォーマット。
innodb_file_formatで指定可能だってさ( ´ω`)

公式をよく読むと

1.テーブルスペースを持っているテーブル単位で有効だよ
2.だからinnodb_file_per_tableを有効にしないとダメだよ

とあります。まあ圧縮するためにはそうなのかなと。
テーブルごとにファイル生成するのって
個人的にはちょっとイヤなのですけれどもね。
5.5.0から5.5.6まではBarracudaがデフォ、
それ以上はAntelopeがデフォとのこと。

あと、highestの意味を「ベストチョイスなフォーマット」と思っていたのですが違う様子。
文字通り「一番上の」てことみたい( ´ω`)
今はAntelopeとBarracudaしかないから、一番上はBarracuda。
次のCheetahが出来たら、一番上はCheetahてことみたいス。
とするとinnodb_file_format_maxは、
システムでどのフォーマットまで使うのかを指定するもののヨウス。
Cheetahの次のDragonまで実装されたときに

innodb_file_format_max = Cheetah

と設定すると、Dragonを指定してあるテーブルはCheetahにセットされると。

これらを踏まえると、今現在でBarracudaを使うためには

innodb_file_per_table = On
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda

として、テーブル作成時(ないしALTER時)に

ROW_FORMAT=COMPRESSED
または
ROW_FORMAT=DYNAMIC

とすると、Barracudaの機能が使えるテーブルになる。
innodb_file_formatがAntelopeのままだと

InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope.

というWARNINGで、COMPACTになる。

InnoDBのデフォルトがCOMPACTなので
UTF-8もりもりのデータでおっきくなっちゃった!
なんていうテーブルがあればBarracudaを使うのがよいのかな。
公式には
「オラクル的にはBarracudaお勧めなんだけど、
今までの資産互換性のためにデフォはAntelopeにしているよ」
とあったり。
・・・オラクルねぇ。なんか腹立つw