質問はhttps://www.zhihu.com/question/440066129/answer/1685329456から参照されています。MySQLでは、テーブルに3億のデータがあり、テーブルに分割されていません。フィールドの1つは企業タイプです。企業タイプは一般企業と自営業者です。自営業者のデータ量は約50%を占めています。条件に従って、自営業者の行はすべて削除されます。どうすればいいですか?答えはオリジナルです テーブルエンジンはInnodb、MySQL 5.7以降であると仮定します。 レコードを削除するには、まずレコードをロックし、元のデータを破棄し、主に削除マークを追加してレコード ヘッダーを変更します。つまり、元のデータのdeleted_flagが1になり、データが削除されたことを示します。ただし、データはクリアされず、新しい行のデータのサイズがこの行のサイズよりも小さい場合は、この行を占有する可能性があります。これは実際にはストレージの断片化です。 その後、データをクリアするには、関連データのインデックスを更新する必要があります。さらに、対応する binlog および redolog ログが生成されます。
解決削除後に制限を追加することで削除回数を制御できると考えるのは簡単です。この回数はインデックスを通過するため、テーブル全体がロックされることはありません。 しかし、ストレージの断片化、マスターとスレーブの同期、スペースの占有などの問題は解決されていません。削除が完了したら、次のステートメントを使用してテーブルを再構築できます。 テーブルを変更します。engine=InnoDB、ALGORITHM=INPLACE、LOCK=NONE; この文は実際にテーブルを再構築することに注意してください。テーブルのエンジンはすでに InnoDB ですが、最後に ALGORITHM=INPLACE, LOCK=NONE を追加すると、テーブルをロックせずに再構築できます。 別の解決策としては、同じ構造を持つ新しいテーブルを作成し、元のテーブルにトリガーを追加することです。 各行の元のテーブルに更新後にトリガー person_trigger_update を作成します。 begin set @x = "トリガーUPDATE"; 新しいテーブルに置き換えます。SELECT * from original table where new table.id = original table.id; 終了の場合; 終わり; これにより、オンライン ビジネスの新しいデータが同期されるようになります。その後、すべてのエンタープライズ タイプのデータを新しいテーブルに挿入します。データがすでに存在する場合、更新同期が行われていれば挿入されません。業務変更により、このテーブルでは各世帯のデータが更新されないため、テーブルロックなしの同期によって大規模テーブルのデータクリーニングが実現されます。 これで、MySQL テーブル内の大量データの一括削除の実装方法についての記事は終了です。MySQL テーブル内の大量データの一括削除の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: nginx で http でアクセスする Web サイトを https に変更する方法
1. Nginx サービス基盤Nginx (エンジン x) は、パフォーマンスの最適化のために特別...
目次1. はじめに2. 環境とツール3. Dockerをインストールし、リモート接続を構成する4. ...
1. Ubuntu Server 18.04.5 LTS システムのインストールUbuntuはデスク...
HTMLで表を描くには、表タグを使用します。 trは行を意味しますtdは列を示すth はテーブ...
目次主に使用されるPostmanの機能データの暗号化と復号化さまざまなパラメータ設定実際に送信された...
Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...
1. はじめに数日前、開発仲間から、フィールドを同じ値に更新すると binlog が記録されるかどう...
Maven を使用してプロジェクトを管理する場合、jar パッケージをプライベート ウェアハウスにア...
1. インストール環境コンピュータモデル: Lenovo Y471a (i5) ノートパソコンシステ...
目次単一マシンの展開オンラインプルミラーを見るRabbitMQを作成して実行するMQコンテナを正常に...
mysql を構成するときに、構成ファイル内のデフォルトのストレージ エンジンを InnoDB に設...
MySQL は最もよく使用されるデータベースです。詳しく知るには、コンピュータにインストールする必...
目次遷移フック関数カスタム遷移クラス名遷移グループの使用まとめまずは例を見てみましょうコードは次のと...
Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...
目次解決策1: レプリカを再構築する前提条件アドバンテージ欠点手順マスター奴隷解決策2: データ修復...