メインコンテンツへスキップ
メインコンテンツへスキップ

削除ミューテーション

削除ミューテーションとは、削除によってテーブルデータを操作する ALTER クエリのことを指します。代表的なものは ALTER TABLE DELETE などのクエリです。このようなクエリを実行すると、データパーツの新しい変更後バージョンが生成されます。これは、ミューテーション適用前に挿入されたすべてのデータについてデータパーツ全体の再書き込みが行われることを意味し、大量の書き込みリクエストにつながります。

参考文献

削除を行う場合は、デフォルトの MergeTree テーブルエンジンの代わりに ReplacingMergeTreeCollapsingMergeTree などの専用テーブルエンジンを使用することで、このような大量の書き込みリクエストを回避できます。

ALTER TABLE ... DELETE 文

ALTER TABLE [db.]table [ON CLUSTER cluster] WHERE 句 filter_expr を満たす行を削除

指定されたフィルタ式に一致するデータを削除します。mutation として実装されています。

注記

ALTER TABLE という接頭辞が付くことで、この構文は SQL をサポートする他の多くのシステムとは異なります。これは、OLTP データベースにおける類似のクエリとは異なり、この操作が頻繁な利用を想定していない重い処理であることを示すためのものです。ALTER TABLE は、削除前に基盤となるデータのマージを必要とする重量級の操作と見なされます。MergeTree テーブルでは、より軽量な削除を行い、かなり高速に動作しうる DELETE FROM クエリ の利用を検討してください。

filter_exprUInt8 型でなければなりません。クエリは、この式の値が 0 以外になる行をテーブルから削除します。

1 つのクエリに、カンマで区切られた複数のコマンドを含めることができます。

クエリ処理の同期方式は、mutations_sync 設定によって定義されます。デフォルトでは非同期です。

関連項目