というテーブルがありますpath。13G ibdata1 の約 99% を占めます。以前はINNODBテーブルでしたが、に変換しましたMYISAM。
新しいpathテーブルでテーブルの最適化を実行すると、ibdata1 ファイルが解放されますか? または、これは決してサイズが小さくならないので、削除して新しいデータベースを再インポートする必要がありますか?
いいえ。 InnoDB テーブルを削除すると、 InnoDB テーブルスペース (ファイル)内のスペースが解放されますが、ファイルは縮小されません。ibdata1ibdata1
例外は、サーバーinnodb_file_per_table変数が設定されている間にテーブルが作成された場合、テーブルは独自の個別の InnoDB テーブルスペース (データファイル) にあり、テーブルが削除されると、テーブルによって使用されていたスペースが解放されることです 。
参照: 14.3.3. テーブルごとのテーブルスペースの使用 http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
答えはノーです (上記のより良い説明)。私がしなければならなかったのはこれでした:
1) Dump the database
2) Stop mysql
3) Delete the `ibdata1` file and two log files.
4) Restart mysql
5) Import the sql dump.
ibdata1これにより、デフォルトのファイル サイズに戻ります。次に、1)テーブルに整合性制約がない場合はテーブルのエンジンを myisam に変更するか(これは私が行ったことです)、2)innodb_file_per_table=ONinnodbテーブルを保持する場合は set を実行できます。