0

というテーブルがありますpath。13G ibdata1 の約 99% を占めます。以前はINNODBテーブルでしたが、に変換しましたMYISAM

新しいpathテーブルでテーブルの最適化を実行すると、ibdata1 ファイルが解放されますか? または、これは決してサイズが小さくならないので、削除して新しいデータベースを再インポートする必要がありますか?

4

2 に答える 2

2

いいえ。 InnoDB テーブルを削除すると、 InnoDB テーブルスペース (ファイル)のスペースが解放されますが、ファイルは縮小されませんibdata1ibdata1

例外は、サーバーinnodb_file_per_table変数が設定されている間にテーブルが作成された場合、テーブルは独自の個別の InnoDB テーブルスペース (データファイル) にあり、テーブルが削除されると、テーブルによって使用されていたスペースが解放されることです

参照: 14.3.3. テーブルごとのテーブルスペースの使用 http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html

于 2013-08-18T22:57:19.120 に答える
1

答えはノーです (上記のより良い説明)。私がしなければならなかったのはこれでした:

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 を実行できます。

于 2013-08-18T23:10:08.877 に答える