ホームページ > データベース > mysql チュートリアル > MySQL で無駄になった InnoDB ストレージ スペースを再利用するにはどうすればよいですか?

MySQL で無駄になった InnoDB ストレージ スペースを再利用するにはどうすればよいですか?

DDD
リリース: 2024-12-09 12:35:32
オリジナル
433 人が閲覧しました

How Can I Reclaim Wasted InnoDB Storage Space in MySQL?

InnoDB ストレージ スペースの再利用

MySQL InnoDB エンジンは、ibdata1 というファイルでデータを管理します。このファイルには、テーブル データ、インデックス、メタデータ、および他のインフラストラクチャコンポーネント。時間の経過とともに、削除されたテーブルのデータが ibdata1 に蓄積され、ストレージ スペースの肥大化を引き起こす可能性があります。

InnoDB ストレージ エンジンをクリーニングする方法

ibdata1 を縮小してスペースを解放するには、次の手順を実行します。これらの手順:

  1. ダンプ アンド ドロップデータベース: すべてのデータベースを SQL ファイル (SQLData.sql) にエクスポートし、MySQL と information_schema を除くすべてのデータベースを削除します。
  2. トランザクション データのフラッシュ: SET GLOBAL innodb_fast_shutdown = 0; を実行します。すべてのトランザクション変更をログ ファイルからクリアします。
  3. MySQL の構成: innodb_file_per_table、innodb_flush_method=O_DIRECT、innodb_log_file_size=1G などの適切な設定を my.cnf ファイルに追加します。 innodb_buffer_pool_size=4G.
  4. Ibdata およびログ ファイルの削除: データ ディレクトリから ibdata* および ib_logfile* ファイルを削除します。
  5. MySQL の再起動: 開始MySQL。より小さいサイズで新しい ibdata1 を作成します。 size.
  6. SQL データのインポート: SQLData.sql をインポートしてデータベースを復元します。

この方法の利点

  • 削除されたものによって以前占有されていたストレージ容量を解放しますテーブル。
  • ibdata1 のサイズを削減し、I/O パフォーマンスを向上させることでパフォーマンスを向上させます。
  • テーブル データとインデックスを別個のファイルに分離することで、データ ストレージの制御を強化します。

注:

ユーザーが許可していることを確認してくださいmysql スキーマ ディレクトリをコピーし、クリーンアップ プロセス後に復元することで保存されます。さらに、サーバー要件とワークロードの特性に基づいてログ ファイルのサイズを最適化します。

以上がMySQL で無駄になった InnoDB ストレージ スペースを再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート