mysql ライブラリに 1TB フォームをドロップする方法
Jun 02, 2023 pm 10:43 PM1. バッファ プールをクリアする
テーブルを削除すると、
innodb エンジンは各
バッファ プール インスタンス内のテーブルをクリーンアップします。中間の対応するデータ ブロック ページについては、システムへの影響を避けるために、ここでのクリア操作は実際には
flush ではありませんが、関連するページは
flush キューから削除されます。 。ただし、削除プロセス中は、各
バッファ プール のグローバル ロックを保持し、# から削除するために、この
バッファ プール 内で対応するページを検索します。 ##フラッシュリスト
を削除します。 バッファ プール
内で検索および削除する必要があるページが多すぎると、トラバース時間が増加し、他のトランザクション操作がブロックされ、深刻な場合にはデータベースがロックされる可能性があります。 (推奨コース: MySQL チュートリアル)
ここでもう 1 つ注意する必要があるのは、データベースの
バッファ プール が大きい値に設定されている場合です。サイズが異なると、移動時間は変化します。
バッファ プール
をクリーニングする場合、このテーブルのデータを含む AHI
のクリーニングも含まれます。AHI
の機能については、主に の場合にここでは説明しません。 b ツリー
のレベルが高くなると、b ツリー
によるレイヤーごとの検索を避けるために、AHI
は特定の検索条件に基づいて対応するデータ ページを直接クエリできます。レイヤーごとの検索をスキップする レイヤーの配置手順。次に、AHI は バッファ プール
サイズの 1/16 を占有します。オンライン テーブル データが特に大きくなく、同時実行性もそれほど高くない場合は、AHI を有効にすることはお勧めできません。 AHI
機能をオフにします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">mysql&gt; SHOW GLOBAL VARIABLES LIKE 'innodb_adaptive_hash_index';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| innodb_adaptive_hash_index | ON |
+----------------------------+-------+
1 row in set (0.01 sec)
mysql&gt; SET GLOBAL innodb_adaptive_hash_index=OFF;
Query OK, 0 rows affected (0.00 sec)
mysql&gt; SHOW GLOBAL VARIABLES LIKE 'innodb_adaptive_hash_index';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| innodb_adaptive_hash_index | OFF |
+----------------------------+-------+
1 row in set (0.01 sec)</pre><div class="contentsignin">ログイン後にコピー</div></div>
データ ファイルを削除するとき、データ ファイルが存在しない場合、大きすぎると、削除プロセスで大量の
IO が生成され、より多くの時間が消費され、ディスク IO
のオーバーヘッドが急増します。CPU
の負荷が高すぎます。他のプログラムの動作に影響を与えます。私の友人がオンライン データベースから 1 TB のテーブルを削除したことがありますが、その結果、データベースは 20 分間応答しなくなり、最終的にはデータベースがクラッシュして再起動されました。 これで、
が 2 つのことを実行したことがわかりました。次に、上記の 2 つのことを最適化します。
バッファをクリアする際に、 バッファ プール
のサイズを減らすには、innodb_buffer_pool_instances
パラメータを適切に設定し、バッファ プール
のデータ ブロック リストのスキャン時間を短縮し、# をオフにします。 ##AHIFunction
ステップ 2 では、
linux
複数のファイル名が同時に同じ
INODE
INODE への参照の数は N>1 であり、そのうちのいずれか 1 つを削除すると、ファイル名は非常に高速になります。直接の物理ファイル ブロックは削除されていないためです。ポインタが削除されただけです。
INODE の参照番号が N=1 の場合、ファイルを削除するにはすべてのデータをクリアする必要があります。時間のかかる;
データベース テーブルの
.ibd
1 2 3 4 |
|
最後のステップは、実際に物理ファイルを削除し、そのファイルが占有しているディスク領域を解放することです。次に問題は、物理ファイルを適切に削除する場合は、coreutils
# をお勧めします。ツールセットの##truncate
1 2 3 4 5 6 7 8 9 |
|
がインストールされたら、大きなファイルを非常に削除するスクリプトを作成できます。
${i}G は、10G
1 2 3 4 5 6 7 8 9 10 |
|
以上がmysql ライブラリに 1TB フォームをドロップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?
