MySQL/MariaDBにinnodb_data_home_dir
というシステム変数がある。InnoDBのデータファイル置き場を明示する変数だが、InnoDB File-Per-Tableモードでは指定値が無視される。File-Per-Tableモードとは、InnoDBのテーブル毎にファイルを作成するモードの事でinnodb_file_per_table
変数で制御可能である。MySQL 5.6.6以降でデフォルト有効になったため、innodb_data_home_dir
は事実上意味がなくなってしまった。
よって、File-Per-TableモードではZFSのrecordsize
やprimarycache
をストレージエンジン毎に最適化する、という手法が取りにくくなった。(DBごとにフォルダが作成され、その中にInnoDBやMyISAMのファイルが混在することになるため。)自分のメモも兼ねて最適とされるパラメータを下表にまとめる。
ストレージエンジン | recordsize | primarycache |
---|---|---|
MyISAM | 8kB | all |
InnoDB(データ) | 16kB | metadata |
InnoDB(ログ) | 128kB | metadata |