تتوفر هذه الإعدادات في system.settings، وهي مُولَّدة تلقائيًا من المصدر.
group_by_overflow_mode
يحدد ما يحدث عندما يتجاوز عدد المفاتيح الفريدة للتجميع الحد المسموح به:
throw: طرح استثناءbreak: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئيةany: متابعة التجميع للمفاتيح التي دخلت إلى المجموعة، ولكن من دون إضافة مفاتيح جديدة إليها.
يتيح لك استخدام القيمة 'any' تشغيل تقريب لـ GROUP BY. وتعتمد جودة هذا التقريب على الطبيعة الإحصائية للبيانات.
group_by_top_k_optimization_observation_rows
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 26.8 | 65536 | إعداد تجريبي جديد: عدد الصفوف التي يراقبها كل تدفق تجميع قبل اعتبار تجميد كومة top-K ممتلئة لم ترفض أي عناصر عبئًا إضافيًا محضًا. |
بالنسبة إلى enable_group_by_top_k_optimization: عدد الصفوف التي يراقبها كل تدفق تجميع قبل تجميد كومة top-K ممتلئة تخطّت أقل من 10% من صفوف الإدخال وأخرجت مفاتيح أقل من سعتها. وتعني الكومة المجمّدة أن التجميع يستمر كما لو كان التحسين معطّلًا.
تبلغ النافذة الفعلية ضعفي الحجم المحجوز للكومة على الأقل، لذا تتاح للكومة دائمًا فرصة للامتلاء قبل تقييمها. تعطل القيمة 0 هذا التجميد (مع استمرار تجميد الكومة عندما تتجاوز مجموعة التعادلات عند الحد سعتها).
لا يؤثر هذا في استعلامات GROUP BY keys LIMIT K التي لا تتضمن ORDER BY، إذ يكون التجميد معطّلًا دائمًا فيها: تتضمن خطة هذا النمط ترتيبًا مُنشأً لا يحقق فائدة إلا ما دامت الكومة تحدّ من حجم جدول التجزئة، لذا فإن تجميد الكومة سيُبقي خطة أبطأ من الخطة غير المحسّنة.
group_by_two_level_threshold
يبدأ التجميع ثنائي المستوى عند هذا العدد من المفاتيح. 0 - العتبة غير معيّنة.
group_by_two_level_threshold_bytes
اعتبارًا من أي حجم، بالبايت، لحالة التجميع يبدأ استخدام التجميع ثنائي المستوى. 0 - يعني أن العتبة غير معيّنة. ويُستخدم التجميع ثنائي المستوى عند تفعيل واحدة على الأقل من العتبات.
group_by_use_nulls
يغيّر الطريقة التي يتعامل بها بند GROUP BY مع أنواع مفاتيح التجميع.
عند استخدام المحددات ROLLUP أو CUBE أو GROUPING SETS، قد لا تُستخدم بعض مفاتيح التجميع في إنتاج بعض صفوف النتائج.
تُملأ الأعمدة الخاصة بهذه المفاتيح إما بالقيمة الافتراضية أو بـ NULL في الصفوف المقابلة، وذلك وفقًا لهذا الإعداد.
القيم الممكنة:
- 0 — تُستخدم القيمة الافتراضية لنوع مفتاح التجميع لتمثيل القيم المفقودة.
- 1 — ينفّذ ClickHouse
GROUP BYبالطريقة نفسها التي يحددها معيار SQL. وتُحوَّل أنواع مفاتيح التجميع إلى Nullable. وتُملأ الأعمدة الخاصة بمفاتيح التجميع المقابلة بقيمة NULL في الصفوف التي لم تُستخدم فيها.
انظر أيضًا: