問題の説明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 の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
目次1. デモプロジェクト1.1 インターフェースの準備1.2 構成の準備2. Dockerがリモー...
1. 準備1.1 港ダウンロードハーバーダウンロードアドレス:リンクリンクの説明を追加し、必要なバー...
1. ファイアウォールをオフにし、Tomcatのインストールに必要なソフトウェアパッケージを/opt...
目次質問:プロジェクトには 2 つのトークンがあり、1 つは有効期間が 2 時間 (ショート トーク...
インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...
この記事では、Docker を使用して Centos6 に Redis マスター/スレーブ データベ...
この効果は、2つのブラウザが互いにシミュレートしていることを示しています 1. シミュレートされたノ...
以前、Docker コンテナとローカル マシン間のファイル転送に関する記事を書きました。しかし、この...
1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...
Safari (Technology Preview 106) および Firefox (バージョン...
この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...
目次1. 原因2. デバイス情報3. 準備4. Apacheをインストールする5. gitを設定する...
目次1. 親コンポーネントと子コンポーネント間の一方向の値転送1. 親から子への値の受け渡し2. 子...
目次序文vue-i18nをインストールするロケールの設定getLangs.js の実装i18nインス...
1つのポートの変更バージョン 3.2.0 では、ネームノード ページ ポートは 9870、データノー...