ホームページ >データベース >mysql チュートリアル >データベースを完全に再構築せずに、削除された InnoDB テーブルからデータを削除できますか?

データベースを完全に再構築せずに、削除された InnoDB テーブルからデータを削除できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-14 17:01:12708ブラウズ

Can I Remove Data from Deleted InnoDB Tables Without a Full Database Rebuild?

データ削除のための MySQL InnoDB ストレージ エンジンの最適化

問題: で削除されたテーブルからデータを削除することは可能ですか?全体を再構築せずに MySQL InnoDB ストレージ エンジンを使用できるデータベース?

回答: はい、包括的なクリーンアップ プロセスを通じて可能です。

説明:

InnoDB にはさまざまなデータベースが保存されますibdata1 ファイル内のデータの種類 (テーブル データ、インデックス、システム メタデータなど)。テーブルが削除されると、アクセスできなくなっても、そのデータとインデックスは ibdata1 内に残ります。これにより、時間の経過とともにスペースが無駄になり、パフォーマンスが低下する可能性があります。

クリーンアップ プロセス:

  1. データベースのダンプ: SQL ダンプを作成します。 mysql を除くすべてのデータベースinformation_schema.
  2. データベースのドロップ: mysql と information_schema.
  3. を除くすべてのデータベースをドロップします。
  4. 高速シャットダウンを無効にする: トランザクションの変更をフラッシュするには、innodb_fast_shutdown を 0 に設定します。ログから
  5. MySQL のシャットダウン: MySQL サーバーを停止します。
  6. 構成の変更: innodb_file_per_table、innodb_flush_method=O_DIRECT、innodb_log_file_size、および innodb_buffer_pool_size 設定を/etc/my.cnf.ibdata
  7. ファイルを削除します:
  8. * すべての ibdata および ib_logfile* ファイルを削除します。
  9. MySQL を再起動します: MySQL を起動します。これにより、ibdata1 が再作成されます。
データベース ダンプのインポート:

以前にエクスポートした SQL ダンプを復元します。

このプロセスの後、ibdata1 にはメタデータのみが含まれ、個々のテーブルは ibdata1 に存在します。独自の .ibd ファイル。これにより、OPTIMIZE TABLE を使用して個々のテーブルを最適化し、無駄なスペースを削減し、パフォーマンスを向上させることができます。

注: データベースを削除した後は、ユーザー権限が適切に再確立されていることを確認することが重要です。

以上がデータベースを完全に再構築せずに、削除された InnoDB テーブルからデータを削除できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。