質問: mysqlでibdata1ファイルを縮小/削除する方法 localhostでmysqlをrで統計を実行するための「クエリツール」として使用しています。つまり、rスクリプトを実行するたびに、新しいデータベースを作成し(a)、新しいテーブルを作成し(b)、データをbにインポートします。 、必要なものを取得するためにクエリを送信し、次にbをドロップしてaをドロップします。私には問題なく動作していますが、ibdataファイルのサイズが急激に増加していることがわかりました。mysqlには何も保存しませんでしたが、ibdata1ファイルはすでに100 mbを超えています。セットアップに多かれ少なかれデフォルトのmysql設定を使用していますが、一定期間後にibdata1ファイルを自動的に縮小/削除する方法はありますか?
回答: innodbテーブルを削除しても、mysqlはibdataファイル内のスペースを解放しないため、増え続けます。これらのファイルはほとんど圧縮されません。既存のibdataファイルを縮小する方法: http://dev.mysql.com/doc/refman/5.5/en/innodb-resize-system-tablespace.html これをスクリプト化して、スクリプトを一定期間後に実行するようにスケジュールすることができますが、上記の設定では、複数の表領域を使用するほうが簡単な方法のようです。構成オプションinnodb_file_per_tableを使用すると、複数の表領域が作成されます。つまり、mysqlは1つの共有ファイルではなく、テーブルごとに別々のファイルを作成します。これらの別々のファイルはデータベースのディレクトリに格納され、このデータベースを削除すると削除されます。これにより、あなたの場合にibdataファイルを縮小/削除する必要がなくなります。複数の表領域に関する詳細情報: http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html