メインコンテンツまでスキップ
メインコンテンツまでスキップ

削除変異

Delete mutations refers to ALTER クエリで、テーブルデータを削除する操作を行います。特に ALTER TABLE DELETE のようなクエリです。このようなクエリを実行すると、データ部分の新しい変異バージョンが生成されます。これは、これらのステートメントがミューテーションの前に挿入されたすべてのデータのために全体のデータ部分の書き直しを引き起こすことを意味し、大量の書き込みリクエストにつながります。

参考

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

ALTER TABLE ... DELETE 文

ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr

指定されたフィルタリング式に一致するデータを削除します。 ミューテーションとして実装されています。

注記

ALTER TABLEのプレフィックスは、この構文をSQLをサポートする他のシステムとは異なるものにしています。これは、OLTPデータベースの類似クエリとは異なり、頻繁に使用されるようには設計されていない重い操作であることを示すためのものです。 ALTER TABLEは、データ削除の前に基盤となるデータをマージする必要がある重い操作と見なされます。MergeTreeテーブルの場合は、軽量削除を行い、かなり高速に実行できるDELETE FROMクエリの使用を検討してください。

filter_exprUInt8型でなければなりません。この式が非ゼロの値を取る行がテーブルから削除されます。

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

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

関連情報