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