問題の説明MySQL で delete ステートメントを使用してデータを削除した後、監視ビューの使用可能なディスク容量が増加しなかったり、ディスク使用量が減少しなかったりしました。 解決削除してもスペースが解放されない理由は、MySQL 独自のメカニズムによるものです。ディスク スペースを解放するには、テーブルを再構築する必要があります。次の操作を参照してください。
注意すべき問題が 2 つあります。 どちらのコマンドもテーブルを再構築します。ディスク容量が不足しているとき (>90%) は、この操作を実行しないでください。まずディスクを拡張し、操作後にディスクを縮小してください。 問題分析MySQL のメカニズムでは、delete によって削除された行は削除済みとしてマークされるだけです。削除された行が多く、データ ページ全体 (innodb_page) のすべての行が削除される場合、データ ページは削除済みとしてマークされるだけです。物理的に削除されるわけではなく、常に占有され、再利用されるのを待ちます。 例えば: data_length は削除前後で変化しませんが、data_free は大幅に増加していることがわかります。これは、データが削除されたにもかかわらず解放されておらず、まだ test1 テーブルに占有されているが、空き状態として表示されていることを意味します。今後新しいデータが書き込まれるときに、新しいディスク領域を申請することなく、直接再利用できます。 この時点で、 data_length と data_free は両方とも空のテーブルになり、innodb_page は 1 つだけ (デフォルトは 16k) になっていることがわかります。 PS: data_free 自体も、テーブルのスペースの断片化を評価するために使用できます。この数値が非常に高い場合は、同じ方法を使用してテーブルを再構築し、ディスク領域を再利用することを検討できます。 上記は、MySQL Delete がデータを削除した後にディスク領域が解放されない理由の詳細です。MySQL がデータを削除した後にディスク領域が解放されない理由の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
目次プロセスコミュニケーションプロセス間の双方向通信問題要約するサードパーティのデータ サプライヤー...
目次Linux - MyCat を使用して MySQL マスター スレーブの読み取り書き込み分離を実...
この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...
導入インターネット アプリケーションの普及に伴い、膨大なデータの保存とアクセスがシステム設計における...
MYSQL のフィールドのデータの一部をバッチで置き換えます。具体的な導入は次のとおりです。 1....
序文私のチームが税制モジュールを開発していたとき、計算問題、特にグリッド内の計算を解決するために時間...
方法 1: hostnamectl の変更ステップ1 ホスト名を確認するホスト名ステップ2 ホスト名...
目次1. Compose の紹介2. ComposeとDockerの互換性3. Dockerをインス...
インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...
前回の記事では、nginx がリクエスト ラインのデータを読み取って、リクエスト ラインを解析する方...
目次1. 読みやすいコード1. 統一コード形式2. マジックナンバーを削除する3. 単一機能原則2....
目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...
最近、Grover の Web サイトで楽しいホバー アニメーションを見つけ、自分自身のインスピレー...
1. ページ要件1) 標準のヘッダーとフッターを使用するXML/HTML コードコンテンツをクリップ...
目次1. forループ2. 二重の for ループ3. whileループ4. dowhileループ5...