Skip to main content
تتوفر هذه الإعدادات في system.settings، وتُنشأ تلقائيًا من الشيفرة المصدرية.

columns_cache_max_bytes_to_write_to_cache

عتبة مرنة لكل استعلام لعدد البايتات التي يكتبها استعلام واحد في ذاكرة التخزين المؤقت للأعمدة. تُحتسب البايتات المكتوبة أثناء تنفيذ الاستعلام، وبمجرد أن يبلغ العدّاد هذه القيمة، تُتخطّى أي عمليات كتابة لاحقة في ذاكرة التخزين المؤقت طوال ما تبقى من الاستعلام. وهذه عتبة استرشادية وليست حدًا صارمًا: إذ يجمع القارئ عناصر الحبيبات التي قرأها ثم يكتبها في ذاكرة التخزين المؤقت دفعةً واحدة، وتُخزَّن الدفعة التي تتخطى العتبة كاملةً قبل أن تُحتسب في العدّاد. لذا قد تتجاوز الكمية المكتوبة فعليًا هذه القيمة بمقدار ما يصل إلى العناصر التي يجمعها قارئ واحد بين عمليتي كتابة - أي الأعمدة التي يقرؤها، بواقع إدخال واحد لكل شريحة تضم نحو 65536 صفًا - وعند تشغيل عدة قرّاء في آنٍ واحد، يتضاعف هذا المقدار بعدد القرّاء. والغرض من هذا الإعداد هو منع عملية فحص كبيرة واحدة من إزاحة البيانات المفيدة من ذاكرة التخزين المؤقت، لا ضبط استخدام ذاكرة التخزين المؤقت بدقة. تعني القيمة 0 استخدام نصف الحد الحالي لحجم ذاكرة التخزين المؤقت للأعمدة: أي قيمة columns_cache_size المُهيّأة، أو أقل منها عندما تتقلص ذاكرة التخزين المؤقت بسبب الضغط على الذاكرة (راجع المقياس ColumnsCacheSizeLimit).

columns_cache_max_estimated_bytes_to_write_to_cache

إذا تجاوز الحجم المقدَّر للبيانات التي يقرؤها الاستعلام من أجزاء بيانات MergeTree هذه القيمة، تُمنع الكتابة في ذاكرة التخزين المؤقت للأعمدة طوال الاستعلام. يُحسب التقدير بالبايتات غير المضغوطة، وهي الوحدة التي تُحتسب بها سعة ذاكرة التخزين المؤقت، استنادًا إلى حجم الأعمدة التي يقرؤها الاستعلام (بما فيها أعمدة PREWHERE وأعمدة التعديل وأعمدة أجزاء التصحيح) بعد تناسبه مع نطاقات العلامات المحدَّدة، ويُحتسب هذا الحجم كاملًا على الاستعلام قبل أن يبدأ القراءة. ويحول ذلك دون أن تُزيح عملية فحص كبيرة واحدة البيانات المفيدة من ذاكرة التخزين المؤقت، أو أن تنسخ إليها بيانات لا يمكن أن تبقى فيها. تعني القيمة 0 استخدام نصف حدّ الحجم الحالي لذاكرة التخزين المؤقت للأعمدة. ويساوي هذا الحدّ القيمة المهيّأة في columns_cache_size ما دام لدى الخادم فائض من الذاكرة، لكن ذاكرة التخزين المؤقت تتقلّص عند الضغط على الذاكرة (راجع المقياس ColumnsCacheSizeLimit)، فتتقلّص الميزانية الافتراضية تبعًا لها. ومع القيمة الافتراضية لـ columns_cache_size_ratio، يساوي نصفُ الحدّ حجمَ المقطع التجريبي من ذاكرة التخزين المؤقت، وبذلك يمكن تخزين بيانات الاستعلام الذي يجتاز هذه البوابة تخزينًا مؤقتًا كاملًا في مرور واحد. لا تنطبق هذه البوابة على عملية القراءة التي تستبعد نطاقات علامات أثناء تنفيذها، كما هي الحال عند تفعيل use_indexes_refiner_in_read_pools: إذ لا يتحدّد عدد العلامات المحدَّدة التي تصل إليها هذه القراءة فعليًا إلا عند تقسيم كل مهمة، ومن ثَمّ يصبح التقدير المذكور أعلاه حدًّا أعلى يحتسب علامات لا يقرؤها الاستعلام أبدًا. أما في هذه القراءات، فيُقيَّد مقدار البيانات المكتوبة بالإعداد columns_cache_max_bytes_to_write_to_cache بدلًا من ذلك.
آخر تعديل في ١٤ أكتوبر ٢٠٢٦