各 InnoDB
        テーブルとそのインデックスをそれ自体のファイル内に格納する事ができます。この特徴は、実際に各テーブルがそのテーブルスペースを持つ為
        「multiple tablespaces」 と呼ばれています。
      
        複数のテーブルスペースを利用する事は、特定のテーブルを別々の物理ディスクに移動したり、単一テーブルのバックアップを残りの
        InnoDB
        テーブルの利用を邪魔する事なく、素早く復元したいユーザにとって、有益な物です。
      
        このラインを my.cnf の
        [mysqld]
        セクションに追加する事で、複数のテーブルスペースを有効にする事ができます:
      
[mysqld] innodb_file_per_table
        サーバを再起動した後、InnoDB
        はテーブルが属するデータベース
        ディレクトリ内にある、それ自体のファイル
        tbl_name.ibdMyISAM ストレージ
        エンジンが行う事と似ていますが、MyISAM
        はテーブルをデータ ファイル
        tbl_name.MYDtbl_name.MYIInnoDB
        には、データとインデックスは
        .ibd
        ファイル内で一緒に格納されます。tbl_name.frm
        もし innodb_file_per_table ラインを
        my.cnf
        から削除してサーバを再起動すると、InnoDB
        は共有テーブルスペース
        ファイル内にテーブルを再度作成します。
      
        innodb_file_per_table
        はテーブル作成だけに影響を与え、既存テーブルにアクセスはしません。もしこのオプションを利用してサーバを起動すると、新しいテーブルは
        .ibd
        ファイルを利用して作成されますが、共有テーブルスペース内に存在するテーブルにアクセスする事もまだ可能です。もしオプションを削除してサーバを再起動すると、新しいテーブルは共有テーブルスペース内に作成されますが、複数のテーブルスペースを利用して作成されたテーブルにもまだアクセスする事ができます。
      
        注意:InnoDB
        は、共有テーブルスペースに内部データ
        ディレクトリと取り消しログを置くので、いつもそれを必要とします。.ibd
        ファイルは InnoDB
        の作動に充分ではありません。
      
        注意:MyISAM
        テーブル
        ファイルで行えるのと同じように、データベース
        ディレクトリ間で .ibd
        ファイルを自由に移動させる事はできません。これは、InnoDB
        共有テーブルスペース内に格納されているテーブル定義がデータベース名を含み、そして
        InnoDB がトランザクション ID
        とログ
        シーケンス番号の一貫性を保持しなければいけない為です。
      
        1つのデータベースから別のデータベースに
        .ibd
        ファイルとその関連テーブルを移動するには、RENAME
        TABLE
        ステートメントを利用してください:
      
RENAME TABLEdb1.tbl_nameTOdb2.tbl_name;
        もし .ibd の 「空の」
        バックアップを持っていれば、それを次のように、それが発生した場所から
        MySQL インストールに格納する事ができます:
      
            この ALTER TABLE
            ステートメントを発行してください:
          
ALTER TABLE tbl_name DISCARD TABLESPACE;
            注意:このステートメントは現在の
            .ibd ファイルを削除します。
          
            バックアップ .ibd
            ファイルを正しいデータベース
            ディレクトリ内に戻してください。
          
            この ALTER TABLE
            ステートメントを発行してください:
          
ALTER TABLE tbl_name IMPORT TABLESPACE;
        このコンテキスト内で 「空の」
        .ibd ファイル
        バックアップが意味する物は:
      
            .ibd
            ファイル内には、トランザクションによってコミットされていない変更はありません。
          
            .ibd
            ファイル内にマージされていない挿入バッファ
            エントリはありません。
          
            パージは .ibd
            ファイルから全ての削除マークされたインデックス
            レコードを削除しました。
          
            mysqld は、.ibd
            ファイルの全ての変更されたページをバッファ
            プールからファイルにフラッシュしました。
          
        次の方法を利用して、空のバックアップ
        .ibd
        ファイルを作る事ができます:
      
mysqld サーバからの全てのアクティビティを停止して、全てのトランザクションをコミットしてください。
            SHOW ENGINE INNODB STATUS
            がデータベース内にアクティブなトランザクションが無いと表示し、InnoDB
            のメイン スレッド ステータスが
            Waiting for server activity
            となるまで待ってください。すると、.ibd
            ファイルのコピーを作成する事ができます。
          
        .ibd
        ファイルの空のコピーを作成する別の方法は、商業
        InnoDB Hot Backup
        ツールを利用する事です:
      
            InnoDB インストールをバック
            アップする為に InnoDB Hot Backup
            を利用してください。
          
            2番目の mysqld サーバをバック
            アップ上で起動し、その中で
            .ibd
            ファイルを掃除させてください。
          

