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

# إعدادات use_* لجدول MergeTree

> إعدادات جدول MergeTree في ClickHouse ضمن المجموعة المُنشأة تلقائيًا use_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["الإصدار", "القيمة الافتراضية", "التعليق"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        سجل الإصدارات
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>النوع</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>القيمة الافتراضية</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          يمكن تغييره دون إعادة التشغيل
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

هذه الإعدادات متاحة في [system.merge\_tree\_settings](/ar/reference/system-tables/merge_tree_settings)، وهي مُولَّدة تلقائيًا من الشيفرة المصدرية لـ ClickHouse.

<div id="use_adaptive_write_buffer_for_dynamic_subcolumns">
  ## use\_adaptive\_write\_buffer\_for\_dynamic\_subcolumns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

السماح باستخدام مخازن الكتابة المؤقتة التكيفية أثناء كتابة الأعمدة الفرعية الديناميكية
لتقليل استخدام الذاكرة

<div id="use_async_block_ids_cache">
  ## use\_async\_block\_ids\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

إعداد متقادم، بلا تأثير.

<div id="use_compact_variant_discriminators_serialization">
  ## use\_compact\_variant\_discriminators\_serialization
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعِّل الوضع المضغوط للتسلسل الثنائي للمميِّزات في نوع
البيانات Variant.
يتيح هذا الوضع استخدام قدر أقل بكثير من الذاكرة لتخزين المميِّزات
في الأجزاء عندما يكون هناك غالبًا متغير واحد فقط أو الكثير من قيم NULL.

<div id="use_const_adaptive_granularity">
  ## use\_const\_adaptive\_granularity
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

تحافظ الحبيبية التكيفية غير الثابتة (وهي الإعداد الافتراضي، عندما لا تساوي `index_granularity_bytes` القيمة `0`) على
حجم الحبيبات ثابتًا بالبايت، لذا يختلف عدد صفوفها. فلكل
كتلة مكتوبة، يساوي عدد الصفوف في الحبيبة `index_granularity_bytes` مقسومًا على
متوسط حجم الصف في تلك الكتلة، بحد أقصى قدره `index_granularity`. ونظرًا إلى اختلاف ذلك
من حبيبة إلى أخرى، يجب الاحتفاظ بعدد الصفوف لكل حبيبة في الجزء
في الذاكرة، بمقدار 8 بايت لكل حبيبة، وهو ما قد يتراكم في الجداول الكبيرة إلى عشرات الغيغابايت.

عند تمكين الحبيبية التكيفية الثابتة (هذا الإعداد)، يبقى عدد الصفوف في الحبيبات ثابتًا بدلًا من ذلك،
لذا يختلف حجمها بالبايت. ويُحسب هذا العدد مرة واحدة استنادًا إلى متوسط حجم
الصف في الجزء الجاري كتابته، ويخزن الجزء هذه القيمة الوحيدة
بدلًا من قيمة لكل حبيبة. وبما أن جميع الحبيبات تحتوي على العدد نفسه من الصفوف،
فلا حاجة إلى تخزين عدد صفوف إضافي لكل حبيبة.

يُبلّغ عن مقدار الذاكرة المستخدمة حاليًا لهذه القيم عبر
المقياس `TotalIndexGranularityBytesInMemory` في `system.asynchronous_metrics`،
ولكل جزء عبر `system.parts.index_granularity_bytes_in_memory`.

يُطبّق الإعداد على الأجزاء المكتوبة بعد تغييره فقط. استخدم
[ALTER TABLE ... REWRITE PARTS](/ar/reference/statements/alter/partition#rewrite-parts)
لتطبيقه على الأجزاء الحالية. تستخدم أجزاء `Compact` دائمًا الحبيبية التكيفية.

<div id="use_metadata_cache">
  ## use\_metadata\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

إعداد متقادم، بلا تأثير.

<div id="use_primary_key_cache">
  ## use\_primary\_key\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "إعداد جديد"}]}]} />

استخدم ذاكرة التخزين المؤقت للفهرس الأساسي
بدلاً من الاحتفاظ بجميع الفهارس في الذاكرة. قد يكون ذلك مفيدًا جدًا للجداول الكبيرة جدًا
