削除ミューテーション
削除ミューテーションは、テーブルデータを削除する ALTER
クエリを指します。特に、ALTER TABLE DELETE
のようなクエリが含まれます。このようなクエリを実行すると、データパーツの新しいミューテーションバージョンが生成されます。つまり、これらのステートメントはミューテーションが行われる前に挿入された全てのデータに対してデータパーツ全体の書き換えを引き起こすため、大量の書き込みリクエストが発生します。
削除に関しては、デフォルトの MergeTree テーブルエンジンの代わりに、ReplacingMergeTree や CollapsingMergeTree のような特化したテーブルエンジンを使用することで、これらの大量の書き込みリクエストを回避できます。
ALTER TABLE ... DELETE ステートメント
指定されたフィルタリング式に一致するデータを削除します。これは mutation として実装されています。
ALTER TABLE
プレフィックスにより、この構文は SQL をサポートする他のシステムとは異なります。これは、OLTPデータベースにおける類似のクエリとは異なり、頻繁に使用することは想定されていない重い操作であることを示しています。 ALTER TABLE
は、削除される前に基になるデータをマージする必要があるため、重い操作と見なされます。 MergeTree テーブルの場合は、軽量削除を行い、かなり速くなる DELETE FROM
クエリ の使用を検討してください。
filter_expr
は UInt8
型でなければなりません。この式が非ゼロの値を取る行がテーブルから削除されます。
1つのクエリには、カンマで区切られた複数のコマンドを含めることができます。
クエリ処理の同期性は mutations_sync 設定によって定義されます。デフォルトでは非同期です。
参照してください
関連コンテンツ
- Blog: ClickHouse における更新と削除の処理