> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ما الفرق بين OPTIMIZE FINAL و FINAL؟

> يناقش الفروق بين OPTIMIZE FINAL و FINAL، ومتى يُستخدم كلٌّ منهما ومتى ينبغي تجنبه.

`OPTIMIZE FINAL` هو أمر DDL يعيد تنظيم البيانات فعليًا وبشكل دائم
ويحسّنها على القرص. وهو يدمج فعليًا أجزاء البيانات في جداول `MergeTree`,
وينفّذ إزالة التكرار للبيانات أثناء العملية عبر حذف الصفوف المكررة من التخزين.

`FINAL` هو **مُعدِّل للاستعلام وقت التنفيذ** يوفّر نتائج بعد إزالة التكرار من دون
تغيير بنية البيانات المخزنة. ويعمل من خلال تطبيق منطق الدمج
عند القراءة. وهو مؤقت، ولا يؤثر إلا في نتيجة الاستعلام الحالية.

غالبًا ما يُنصح المستخدمون بتجنب استخدام `OPTIMIZE FINAL`، لأنه يضيف
عبئًا كبيرًا على الأداء، لكن ينبغي عدم الخلط بين الاثنين. وغالبًا ما يكون من الضروري
استخدام `FINAL` للحصول على نتائج خالية من التكرار، خاصة عند استخدام
محركات الجداول مثل `ReplacingMergeTree` التي قد تحتوي على صفوف مكررة لم
تُستبدل بعد أثناء عملية الدمج الخلفية التي تتم تدريجيًا.

يلخّص الجدول أدناه الفروق الرئيسية:

| Aspect         | `OPTIMIZE FINAL`                          | `FINAL`                                      |
| -------------- | ----------------------------------------- | -------------------------------------------- |
| النوع          | أمر DDL                                   | مُعدِّل للاستعلام                            |
| التأثير        | تحسين دائم للتخزين                        | إزالة تكرار مؤقتة وقت الاستعلام              |
| الأداء         | تكلفة مرتفعة مرة واحدة، ثم استعلامات أسرع | تكلفة أقل لكل مرة، لكنها تتكرر مع كل استعلام |
| تعديل البيانات | نعم - يغيّر التخزين فعليًا                | لا - عملية للقراءة فقط                       |
| حالة الاستخدام | صيانة/تحسين دوري                          | استعلامات آنية بعد إزالة التكرار             |

<div id="when-to-use-each">
  ## متى تستخدم كلًّا منهما
</div>

استخدم `OPTIMIZE FINAL` عندما:

* تريد تحسين أداء الاستعلام بشكل دائم
* يمكنك تحمّل تكلفة التحسين لمرة واحدة
* تُجري صيانة دورية للجدول
* تريد تنظيف البيانات المكررة فعليًا

استخدم `FINAL` عندما:

* تحتاج إلى نتائج مع إزالة التكرار فورًا
* لا يمكنك انتظار التحسين الدائم أو لا ترغب فيه
* لا تحتاج إلى بيانات مع إزالة التكرار إلا من حين لآخر
* تعمل مع بيانات تتغير باستمرار

كلتاهما أداتان قيّمتان، لكن لكلٍّ منهما غرض مختلف ضمن استراتيجية إزالة التكرار في ClickHouse.
