max_bytes_before_external_group_by
GROUP BY باستخدام الذاكرة الخارجية.
(راجع GROUP BY في الذاكرة الخارجية)
القيم الممكنة:
- الحد الأقصى من ذاكرة RAM (بالبايت) الذي يمكن أن تستخدمه عملية GROUP BY واحدة.
0— تعطيلGROUP BYفي الذاكرة الخارجية.
إذا تجاوز استخدام الذاكرة أثناء عمليات GROUP BY هذه العتبة المحددة بالبايت،
فسيتم تفعيل وضع ‘التجميع الخارجي’ (نقل البيانات المرحلية إلى القرص).القيمة الموصى بها هي نصف ذاكرة النظام المتاحة.
max_bytes_before_external_join
join_algorithm هو hash أو parallel_hash أو default أو auto، فسيتم تلقائيًا تحويل hash join إلى grace hash join لتمكين الكتابة إلى القرص عندما تتجاوز البيانات الموجودة على الجانب الأيمن هذا العدد من البايتات. وعند تعيينه إلى 0 (القيمة الافتراضية)، يتم تعطيل عتبة البايتات المطلقة هذه، ولكن قد تظل الكتابة التلقائية إلى القرص تحدث عبر max_bytes_ratio_before_external_join (الذي تبلغ قيمته الافتراضية 0.5)؛ اضبط كليهما على 0 لتعطيل الكتابة التلقائية إلى القرص بالكامل. وهو يمنع تحسين القراءة بالترتيب عبر join.
max_bytes_before_external_sort
ORDER BY باستخدام الذاكرة الخارجية. راجع تفاصيل تنفيذ ORDER BY
إذا تجاوز استهلاك الذاكرة أثناء عملية ORDER BY هذه العتبة بالبايت، فسيتم تفعيل وضع “الفرز الخارجي” (كتابة البيانات المرحلية إلى القرص).
القيم الممكنة:
- الحد الأقصى لحجم RAM (بالبايت) الذي يمكن أن تستخدمه عملية ORDER BY واحدة. القيمة الموصى بها هي نصف ذاكرة النظام المتاحة
0— تعطيلORDER BYباستخدام الذاكرة الخارجية.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm المختارة — راجع
ذلك الإعداد لمعرفة السلوك الخاص بكل خوارزمية (spill، أو إعادة التقسيم، أو التبديل، أو
throw/break وفقًا لـ join_overflow_mode).
القيم الممكنة:
- عدد صحيح موجب.
- 0 — يكون التحكم في الذاكرة معطّلًا.
max_bytes_in_set
IN
والناتجة عن استعلام فرعي.
max_bytes_ratio_before_external_group_by
GROUP BY باستخدامها. وعند بلوغها،
تُستخدَم الذاكرة الخارجية في التجميع.
على سبيل المثال، إذا ضُبطت على 0.6، فسيسمح GROUP BY باستخدام 60% من الذاكرة المتاحة
(لـ server/user/merges) في بداية التنفيذ، وبعد ذلك سيبدأ
باستخدام التجميع الخارجي.
max_bytes_ratio_before_external_join
JOIN. وعند بلوغها، سيُحوَّل hash join إلى grace hash join لكتابة بيانات الجانب الأيمن إلى القرص.
على سبيل المثال، إذا ضُبطت على 0.6، فسيسمح JOIN باستخدام 60% من الذاكرة المتاحة (للخادم/المستخدم/عمليات الدمج) لجدول تجزئة للجانب الأيمن في بداية التنفيذ؛ وبعد ذلك تبدأ الكتابة إلى القرص.
إذا جرى تعيين كلٍّ من max_bytes_before_external_join وmax_bytes_ratio_before_external_join، فستُستخدم عتبة النتيجة الأصغر. وإذا كانت النسبة 0، فلن يُطبَّق إلا الإعداد المطلق.
لا يكون له تأثير إلا عندما تكون join_algorithm هي hash أو parallel_hash أو default أو auto ويكون قد جرى تهيئة مسار بيانات مؤقت.
max_bytes_ratio_before_external_sort
ORDER BY. وعند بلوغ هذا الحد، يُستخدم الفرز الخارجي.
على سبيل المثال، إذا ضُبطت على 0.6، فسيسمح ORDER BY باستخدام 60% من الذاكرة المتاحة (للـ server/user/merges) في بداية التنفيذ، وبعد ذلك سيبدأ باستخدام الفرز الخارجي.
لاحظ أن max_bytes_before_external_sort يظل معمولًا به، ولن تتم الكتابة إلى القرص إلا إذا كانت كتلة الفرز أكبر من max_bytes_before_external_sort.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150 سيفشل لأن الإجمالي
سيبلغ 200 بايت. أما الاستعلام مع max_bytes_to_read_leaf=150 فسينجح لأن
العقد الطرفية لن تقرأ أكثر من 100 بايت.
يُفحص هذا القيد لكل جزء من البيانات تتم معالجته.
هذا الإعداد غير مستقر مع
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode، والذي يُضبط افتراضيًا على throw.