هذه الإعدادات متاحة في system.settings، وقد وُلِّدت تلقائيًا من الشفرة المصدرية.
use_async_executor_for_materialized_views
يستخدم تنفيذًا غير متزامن، وربما متعدد الخيوط، لاستعلام العرض المادي، ما قد يسرّع معالجة العروض أثناء INSERT، لكنه يستهلك أيضًا مزيدًا من الذاكرة.
use_cache_for_count_from_files
يُفعّل التخزين المؤقت لعدد الصفوف عند احتسابها من الملفات في دوال الجداول file/s3/url/hdfs/azureBlobStorage.
يكون مفعّلًا افتراضيًا.
استخدم المنطقة الزمنية للعميل لتفسير قيم السلاسل النصية من نوع DateTime بدلًا من استخدام المنطقة الزمنية للخادم.
يستخدم التنسيق المضغوط لتخزين الكتل الخاصة بعمليات INSERT في الخلفية (distributed_foreground_insert) إلى الجداول التي تستخدم المحرك Distributed.
القيم الممكنة:
- 0 — يستخدم تنسيق الدليل
user[:password]@host:port#default_database.
- 1 — يستخدم تنسيق الدليل
[shard{shard_index}[_replica{replica_index}]].
- عند استخدام
use_compact_format_in_distributed_parts_names=0، لن تُطبَّق التغييرات في تعريف العنقود على عمليات INSERT في الخلفية.
- عند استخدام
use_compact_format_in_distributed_parts_names=1، فإن تغيير ترتيب العُقد في تعريف العنقود سيؤدي إلى تغيير shard_index/replica_index، لذا انتبه.
يراعي التحكم في التزامن على مستوى الخادم (راجع إعدادات الخادم العامة concurrent_threads_soft_limit_num و concurrent_threads_soft_limit_ratio_to_cores). وإذا كان معطّلًا، فسيتيح استخدام عدد أكبر من الخيوط حتى إذا كان الخادم مثقَلًا بالأحمال (وهذا غير موصى به للاستخدام العادي، ويُحتاج إليه غالبًا في الاختبارات).
use_constant_folding_in_index_analysis
استبدِل الثوابت على مستوى التقسيم داخل شرط عامل التصفية عند تحليل المفتاح الأساسي وفهارس التخطي لكل جزء.
عندما يظهر مفتاح التقسيم في عامل التصفية مع أعمدة المفتاح الأساسي أو أعمدة فهرس التخطي، يتيح ذلك لتحليل الفهرس طيَّ قيمة التقسيم بشكل منفصل داخل كل جزء. ويكون هذا مفيدًا بشكل خاص مع عوامل التصفية الفصلية التي تستهدف تفرعاتها أقسامًا مختلفة. على سبيل المثال، مع PARTITION BY a وORDER BY b:
بالنسبة إلى الجزء ضمن الـ partition a = 1، يُبسَّط الشرط إلى b >= 1، بينما في الـ partitions a = 2 وa = 3 يُبسَّط إلى b > 10، لذا يُحلَّل كل جزء باستخدام عبارة الشرط التي تنطبق عليه فعليًا.
القيم الممكنة:
use_hash_table_stats_for_join_reordering
تمكين استخدام إحصاءات جدول التجزئة المجمّعة لتقدير الكاردينالية أثناء إعادة ترتيب عمليات JOIN
يُفعّل منطق الطلبات التحوطية للاستعلامات البعيدة. ويتيح إنشاء عدة اتصالات مع replicas مختلفة للاستعلام.
يُنشأ اتصال جديد إذا تعذّر إنشاء الاتصال الحالي (أو الاتصالات الحالية) مع replica (أو replicas) خلال hedged_connection_timeout
أو إذا لم يتم تلقي أي بيانات خلال receive_data_timeout. يستخدم الاستعلام أول اتصال يرسل حزمة Progress غير فارغة (أو حزمة Data إذا كان allow_changing_replica_until_first_data_packet مفعّلًا)؛
وتُلغى الاتصالات الأخرى. الاستعلامات التي تستخدم max_parallel_replicas > 1 مدعومة.
مفعّل افتراضيًا.
القيمة الافتراضية في Cloud: 0.
عند تمكين هذا الإعداد، سيكتشف ClickHouse التقسيم بنمط Hive في المسار (/name=value/) في محركات الجداول الشبيهة بالملفات File/S3/URL/HDFS/AzureBlobStorage، وسيتيح استخدام أعمدة التقسيم كأعمدة افتراضية في الاستعلام. وستحمل هذه الأعمدة الافتراضية الأسماء نفسها الموجودة في المسار المُقسَّم، لكنها ستبدأ بالبادئة _.
use_join_disjunctions_push_down
يمكّن من دفع الأجزاء الموصولة بـ OR من شروط JOIN إلى جهات الإدخال المقابلة (“دفع جزئي”).
ويتيح ذلك لمحركات التخزين إجراء التصفية مبكرًا، مما قد يقلل من البيانات المقروءة.
لا يغيّر هذا التحسين الدلالة، ولا يُطبَّق إلا عندما يوفّر كل فرع OR من المستوى الأعلى شرطًا حتميًا واحدًا على الأقل
للجهة المستهدفة.
عند تمكين هذا الإعداد، يتيح استخدام الدالة القديمة toTime، التي تحوّل قيمة تاريخ ووقت إلى تاريخ ثابت معيّن مع الحفاظ على الوقت.
وبخلاف ذلك، تُستخدم دالة toTime الجديدة، التي تحوّل أنواعًا مختلفة من البيانات إلى النوع Time.
وتظل الدالة القديمة متاحة دائمًا أيضًا باسم toTimeWithFixedDate.
use_lightweight_primary_key_index_analysis
تحسين تحليل فهرس المفتاح الأساسي لجداول MergeTree ذات المفاتيح الأساسية الطويلة.
عند التمكين، يعتمد وقت تشغيل تحليل الفهرس أساسًا على مدى تعقيد شرط التصفية في الاستعلام (أي أعمدة المفتاح التي يستخدمها فعليًا)، لا على طول المفتاح الأساسي — لذا فإن توسيع مفتاح الفرز يضيف عبئًا إضافيًا ضئيلًا جدًا على تحليل الفهرس في الاستعلامات التي تُجري تصفية على عدد قليل فقط من أعمدته.
القيم الممكنة:
- 0 — معطّل. تُعالَج جميع أعمدة المفتاح الأساسي أثناء تحليل الفهرس.
- 1 — مُمكّن.
عند تفعيل هذا الخيار، قد يستخدم تنسيق Parquet ذاكرة التخزين المؤقت لبيانات تعريف Parquet.
القيم الممكنة:
استخدم المفتاح الأساسي لتقليم الحبيبات أثناء تنفيذ الاستعلام في جداول MergeTree.
القيم الممكنة:
تجريبي. تُوجَّه عمليات القراءة عبر خط الأنابيب الجديد ReaderExecutor بدلًا من البنية المتداخلة القديمة لمخازن القراءة المؤقتة. ويعود إلى المسار القديم في التهيئات التي لا يزال المنفّذ لا يدعمها.
use_roaring_bitmap_iceberg_positional_deletes
استخدم roaring bitmap لعمليات الحذف الموضعي في Iceberg.
use_streaming_marks_compression
عند تحميل العلامات لأجزاء MergeTree، اضغطها إلى تمثيلها داخل الذاكرة كتلةً واحدة في كل مرة (streaming) بدلًا من إنشاء مصفوفة العلامات العادية الكاملة أولًا. يقلل هذا بشكل كبير من ذروة استخدام الذاكرة أثناء تحميل العلامات للأجزاء compact التي تحتوي على العديد من التدفقات الفرعية (مثل الجداول التي تحتوي على أعمدة JSON مع تفعيل write_marks_for_substreams_in_compact_parts).
use_strict_insert_block_limits
عند تمكينه، يفرض هذا الإعداد بدقة كلاً من الحدين الأدنى والأقصى لحجم كتلة insert.
تُنشأ كتلة عندما:
- العتبات الدنيا (AND): يتم بلوغ كلٍّ من min_insert_block_size_rows و min_insert_block_size_bytes.
- العتبات القصوى (OR): يتم بلوغ أحد max_insert_block_size_rows أو max_insert_block_size_bytes.
عند تعطيله، تُنشأ كتلة عندما:
- العتبات الدنيا (OR): يتم بلوغ min_insert_block_size_rows أو min_insert_block_size_bytes.
ملاحظة: إذا كانت إعدادات الحد الأقصى أصغر من إعدادات الحد الأدنى، فستكون لحدود الحد الأقصى الأولوية، وستُنشأ الكتل قبل بلوغ العتبات الدنيا.
ملاحظة: يُعطَّل هذا الإعداد تلقائيًا لعمليات insert غير المتزامنة، لأن عمليات insert غير المتزامنة تُرفق رموز إزالة التكرار لكل إدخال، وهي غير متوافقة مع تقسيم الكتل المطلوب لفرض الحدود الصارمة.
معطّل افتراضيًا.
use_structure_from_insertion_table_in_table_functions
استخدم البنية من جدول الإدراج بدلًا من استدلال المخطط من البيانات. القيم الممكنة: 0 - معطّل، 1 - مُمكّن، 2 - تلقائي
ما إذا كان سيتم استخدام cache of uncompressed blocks. يقبل 0 أو 1. والقيمة الافتراضية هي 0 (معطّل).
يمكن أن يؤدي استخدام uncompressed cache (فقط للجداول في tables in the MergeTree family) إلى تقليل زمن الاستجابة بشكل كبير وزيادة معدل النقل عند العمل مع عدد كبير من الاستعلامات القصيرة. فعّل هذا الإعداد للمستخدمين الذين يرسلون طلبات قصيرة متكررة. وانتبه أيضًا إلى المعلَمة uncompressed_cache_size في configuration (يتم ضبطها فقط في config file) — وهي حجم uncompressed cache blocks. وتبلغ قيمتها الافتراضية 8 GiB. ويتم ملء uncompressed cache حسب الحاجة، كما تُحذف البيانات الأقل استخدامًا تلقائيًا.
بالنسبة إلى الاستعلامات التي تقرأ حجمًا كبيرًا نسبيًا من data (مليون row أو أكثر)، يُعطَّل uncompressed cache تلقائيًا لتوفير المساحة للاستعلامات الصغيرة فعلًا. وهذا يعني أنه يمكنك إبقاء الإعداد ‘use_uncompressed_cache’ مضبوطًا دائمًا على 1.
use_with_fill_by_sorting_prefix
الأعمدة التي تسبق أعمدة WITH FILL في عبارة ORDER BY تُكوِّن بادئة الفرز. وتُملأ الصفوف التي تختلف قيم بادئة الفرز فيها بشكل مستقل آخر تعديل في ٢٤ يوليو ٢٠٢٦