InnoDB ストレージ スペースの再利用
MySQL InnoDB エンジンは、ibdata1 というファイルでデータを管理します。このファイルには、テーブル データ、インデックス、メタデータ、および他のインフラストラクチャコンポーネント。時間の経過とともに、削除されたテーブルのデータが ibdata1 に蓄積され、ストレージ スペースの肥大化を引き起こす可能性があります。
InnoDB ストレージ エンジンをクリーニングする方法
ibdata1 を縮小してスペースを解放するには、次の手順を実行します。これらの手順:
-
ダンプ アンド ドロップデータベース: すべてのデータベースを SQL ファイル (SQLData.sql) にエクスポートし、MySQL と information_schema を除くすべてのデータベースを削除します。
-
トランザクション データのフラッシュ: SET GLOBAL innodb_fast_shutdown = 0; を実行します。すべてのトランザクション変更をログ ファイルからクリアします。
-
MySQL の構成: innodb_file_per_table、innodb_flush_method=O_DIRECT、innodb_log_file_size=1G などの適切な設定を my.cnf ファイルに追加します。 innodb_buffer_pool_size=4G.
-
Ibdata およびログ ファイルの削除: データ ディレクトリから ibdata* および ib_logfile* ファイルを削除します。
-
MySQL の再起動: 開始MySQL。より小さいサイズで新しい ibdata1 を作成します。 size.
-
SQL データのインポート: SQLData.sql をインポートしてデータベースを復元します。
この方法の利点
- 削除されたものによって以前占有されていたストレージ容量を解放しますテーブル。
- ibdata1 のサイズを削減し、I/O パフォーマンスを向上させることでパフォーマンスを向上させます。
- テーブル データとインデックスを別個のファイルに分離することで、データ ストレージの制御を強化します。
注:
ユーザーが許可していることを確認してくださいmysql スキーマ ディレクトリをコピーし、クリーンアップ プロセス後に復元することで保存されます。さらに、サーバー要件とワークロードの特性に基づいてログ ファイルのサイズを最適化します。
以上がMySQL で無駄になった InnoDB ストレージ スペースを再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。