فيما يلي ملخص للطرق المختلفة لحذف البيانات في ClickHouse:
حذف خفيف الوزن
SELECT اللاحقة. وتجري إزالة هذه الصفوف المحذوفة لاحقًا أثناء دورات الدمج الطبيعية، ما يترتب عليه قدر أقل من عمليات الإدخال/الإخراج. ونتيجةً لذلك، قد تظل البيانات، لفترة غير محددة، غير محذوفة فعليًا من التخزين، وإنما تكون معلَّمة فقط على أنها محذوفة. وإذا كنت بحاجة إلى ضمان حذف البيانات، فراجِع أمر الـ طفرة المذكور أعلاه.
DELETE الخفيفة سلبًا أيضًا على أداء استعلامات SELECT. كما أن هذا الأمر غير متوافق مع الجداول التي تحتوي على إسقاطات.
لاحظ أنه تُستخدَم في هذه العملية عملية طفرة لوضع علامة على الصفوف المحذوفة (من خلال إضافة العمود _row_exists)، ما يترتب عليه بعض عمليات I/O.
بوجه عام، يُفضَّل استخدام عمليات الحذف خفيفة الوزن بدلًا من عمليات طفرة إذا كان من المقبول بقاء البيانات المحذوفة على القرص (على سبيل المثال، في الحالات غير المتعلقة بالامتثال). ومع ذلك، ينبغي تجنّب هذا النهج إذا كان من الضروري حذف جميع البيانات.
اطّلع على المزيد حول عمليات الحذف خفيفة الوزن.
عمليات الحذف بالطفرة
ALTER TABLE ... DELETE، على سبيل المثال.
WHERE. ولا تتمتع هذه العملية بخاصية الذرية، إذ تُستبدل الأجزاء بأجزاء خضعت لـ طفرة بمجرد أن تصبح جاهزة، وسيطّلع استعلام SELECT الذي يبدأ تنفيذه أثناء طفرة على بيانات من الأجزاء التي خضعت لـ طفرة بالفعل، إلى جانب بيانات من الأجزاء التي لم تخضع لها بعد. ويمكن للمستخدمين تتبّع حالة التقدّم عبر جدول system.mutations. وهذه عمليات كثيفة من ناحية I/O، لذا ينبغي استخدامها بحذر لأنها قد تؤثر في أداء SELECT على مستوى الـ cluster.
اقرأ المزيد عن عمليات الحذف بالطفرة.
تفريغ الجدول
TRUNCATE TABLE الموضح أدناه. وهذه عملية منخفضة التكلفة.