file-per-tableモドをMySQLサバのデフォルトにするには,——innodb_file_per_table
コマンド行オプションでサ,バ,を起動するか,my.cnf
の(mysqld)
セクションに次の行を追加します。
(mysqld) innodb_file_per_table
サ,バ,が動作している間に,コマンドを発行することもできます。
SET GLOBAL innodb_file_per_table=1;
文件-表モ,ドが有効な場合,InnoDB
は,適切なデ,タベ,スディレクトリ内の独自の
ファ@ @ルに,新しく作成された各テ@ @ブルを格納します。tbl_name
.ibdMyISAM
ストレ,ジエンジンとは異なり
とtbl_name
.MYD
ファ电子邮箱ルがあると,tbl_name
.MYIInnoDB
はデタとンデックスを一緒に1の.ibd
ファ@ @ルに格納します。それでも,
ファ@ @ルは従来どおり作成されます。tbl_name
.frm
使用する起動オプションからinnodb_file_per_table
を削除してサ,バ,を再起動する場合,または集全球
コマンドでオプションをオフにした場合,InnoDB
はシステムのテ,ブルスペ,ス内に新しいテ,ブルを作成します。
文件-每个表設定にかかわらず,InnoDB
テ,ブルの読み取りおよび書き込みは常に実行できます。
テーブルをシステムテーブルスペースから自身のテーブルスペースへ移動するには,またはその反対方向にテーブルを移動するには,innodb_file_per_table
設定を変更してテ,ブルを再作成します。
将表从系统表空间移到自己的表空间。SET GLOBAL innodb_file_per_table=1;ALTER TABLEtable_name引擎= InnoDB;将表从自己的表空间移到系统表空间。SET GLOBAL innodb_file_per_table=0ALTER TABLEtable_name引擎= InnoDB;
InnoDB
は,内部のデ,タディクショナリと撤销ログをシステムのテ,ブルスペ,スに配置するため,常にこのテ,ブルスペ,スが必要です。.ibd
ファ@ @ルはInnoDB
が動作するのには十分ではありません。
システムテ,ブルスペ,スから独自の.ibd
ファイルにテーブルが移動された場合,システムテーブルスペースを構成するデータファイルのサイズは維持されます。以前にテ,ブルが占有したスペ,スは,新しいInnoDB
デ,タ用に再利用できますが,オペレ,ティングシステム用には再利用されません。システムテ,ブルスペ,スから,ディスクスペ,スが限られているところへ大規模なInnoDB
テ,ブルを移動する場合,innodb_file_per_table
をオンにしてから, mysqldumpコマンドを使用して@ @ンスタンス全体を再作成することをお勧めします。