PostgreSQLでIDで何百万ものデータベース行を効率的に削除するにはどうすればよいですか?
id
による数百万のポストグレスクル行の高性能削除何百万ものデータベース行を削除すると、パフォーマンスに深刻な影響を与える可能性があります。この記事では、IDSのリストを使用して、一般的なボトルネックに対処するPostgreSQLデータベースから約200万行を削除するための効率的な戦略を検証します。
課題:
タスクには、提供されたIDリストに基づいて大きなデータセットを削除することが含まれます。 バッチの削除や句のクエリなどの標準的な方法は、このスケールに対して非効率的であることが多いことがよくあります。
IN
最良のアプローチは、いくつかの要因に依存します:
- 同時アクセス:
- 同時書の存在がプロセスをかなり簡素化する。 インデックス作成:
- 一時的に不要なインデックスをドロップし(削除に重要なものを除く)、その後それらを再構築すると速度が向上する可能性があります。 トリガー: 削除プロセス中にトリガーを非アクティブ化または削除すると、パフォーマンスが大幅に改善される可能性があります。
- 外国の鍵:外国のキー関係を慎重に管理します。削除を容易にするために、一時的な無効化または変更を検討してください
- autovacuum:running事前にパフォーマンスを最適化できます
- メモリー内アプローチ(残りのデータセットが小さい場合):削除後に残っているデータが元のテーブルよりも大幅に小さく、この非常に効率的な方法を検討してください。
VACUUM ANALYZE
これにより、外国の鍵、ビュー、その他の依存関係が保持されているため、清潔で最適化されたテーブルが生まれます。
- vs.
BEGIN; SET LOCAL temp_buffers = '1000MB'; CREATE TEMP TABLE tmp AS SELECT t.* FROM tbl t LEFT JOIN del_list d USING (id) WHERE d.id IS NULL; -- copy remaining rows TRUNCATE tbl; -- clear the table INSERT INTO tbl SELECT * FROM tmp; -- re-insert remaining data COMMIT;
は、トリガーと外部キーの制約を維持するため、
よりも高速になる可能性があります。-
主要な考慮事項:
DELETE
TRUNCATE
すべての参照テーブルも同時に切り捨てられない限り、DELETE
TRUNCATE
外部キー参照のテーブルでは使用できません。
トリガーをトリガーしません。 削除後
(または- )は、ディスクのスペースを取り戻し、テーブルサイズを最適化するために重要です。
- >
TRUNCATE
以上がPostgreSQLでIDで何百万ものデータベース行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。
