
OPTIMIZE FINAL في معظم الحالات لأنها تبدأ
عمليات كثيفة الاستهلاك للموارد قد تؤثر في أداء الـ cluster.
OPTIMIZE FINAL مقابل FINALOPTIMIZE FINAL ليس هو نفسه FINAL، والذي يكون استخدامه ضروريًا أحيانًا
للحصول على نتائج من دون تكرار، كما هو الحال مع ReplacingMergeTree. وبشكل عام،
لا بأس باستخدام FINAL إذا كانت استعلاماتك تُجري التصفية على الأعمدة نفسها
الموجودة في المفتاح الأساسي.لماذا ينبغي تجنّب ذلك؟
إنه مكلف
OPTIMIZE FINAL إلى إجبار ClickHouse على دمج جميع الأجزاء النشطة في جزء واحد، حتى لو كانت عمليات دمج كبيرة قد أُجريت بالفعل. ويتضمن ذلك:
- فك ضغط جميع الأجزاء
- دمج البيانات
- إعادة ضغطها
- كتابة الجزء النهائي إلى القرص أو إلى التخزين الكائني
يتجاهل حدود الأمان
OPTIMIZE FINAL يتجاوز وسيلة الحماية هذه، ما يعني:
- قد يحاول دمج عدة أجزاء بحجم 150 GB في جزء واحد هائل
- قد يؤدي ذلك إلى أوقات دمج طويلة، وضغط على الذاكرة، أو حتى أخطاء نفاد الذاكرة
- قد تصبح هذه الأجزاء الكبيرة صعبة الدمج، أي إن محاولات دمجها لاحقًا قد تفشل للأسباب المذكورة أعلاه. وفي الحالات التي تكون فيها عمليات الدمج مطلوبة لضمان سلوك صحيح وقت الاستعلام، فقد يؤدي ذلك إلى عواقب غير مرغوبة، مثل تراكم السجلات المكررة في ReplacingMergeTree، مما يضعف الأداء وقت الاستعلام.