أنواع تخطيط القاموس
| التخطيط | الوصف |
|---|---|
| flat | يخزّن البيانات في مصفوفات مسطّحة مفهرسة حسب المفتاح. وهو أسرع تخطيط، لكن يجب أن تكون المفاتيح من النوع UInt64 وأن تكون محدودة بالقيمة max_array_size. |
| hashed | يخزّن البيانات في جدول hash. لا يوجد حد لحجم المفتاح، ويدعم أي عدد من العناصر. |
| sparse_hashed | يشبه hashed، لكنه يضحّي ببعض CPU مقابل تقليل استخدام الذاكرة. |
| complex_key_hashed | يشبه hashed، للمفاتيح المركبة. |
| complex_key_sparse_hashed | يشبه sparse_hashed، للمفاتيح المركبة. |
| hashed_array | تُخزَّن السمات في مصفوفات مع جدول hash يربط المفاتيح بفهارس المصفوفات. وهو فعّال من حيث الذاكرة عند وجود عدد كبير من السمات. |
| complex_key_hashed_array | يشبه hashed_array، للمفاتيح المركبة. |
| range_hashed | جدول hash مع ranges مرتبة. يدعم عمليات lookup حسب المفتاح + نطاق التاريخ/الوقت. |
| complex_key_range_hashed | يشبه range_hashed، للمفاتيح المركبة. |
| cache | cache ثابتة الحجم داخل الذاكرة. لا تُخزَّن إلا المفاتيح التي يكثر الوصول إليها. |
| complex_key_cache | يشبه cache، للمفاتيح المركبة. |
| ssd_cache | يشبه cache، لكنه يخزّن البيانات على SSD مع index داخل الذاكرة. |
| complex_key_ssd_cache | يشبه ssd_cache، للمفاتيح المركبة. |
| direct | لا يستخدم تخزينًا داخل الذاكرة — بل يستعلم المصدر مباشرةً لكل طلب. |
| complex_key_direct | يشبه direct، للمفاتيح المركبة. |
| ip_trie | بنية trie لإجراء عمليات lookup سريعة على بادئات IP (المعتمدة على CIDR). |
تحديد تخطيط القاموس
LAYOUT (في DDL) أو الإعداد layout في تعريفات ملف التهيئة.
- DDL
- ملف التهيئة
انظر أيضًا إلى CREATE DICTIONARY للاطّلاع على بنية DDL الكاملة. القواميس التي لا يتضمن تخطيطها الكلمة
complex-key* يكون مفتاحها من النوع UInt64، أما قواميس complex-key* فلها مفتاح مركب (معقّد، وبأنواع مختلفة).
مثال على مفتاح رقمي (العمود key_column من النوع UInt64):
- DDL
- ملف التهيئة
مثال على مفتاح مركب (يحتوي المفتاح على عنصر واحد من النوع String):
- DDL
- ملف التهيئة
تحسين أداء القاموس
- استدعِ الدالة المستخدمة للعمل مع القاموس بعد
GROUP BY. - علِّم السمات المراد استخراجها بأنها injective.
تُعدّ السمة injective إذا كانت المفاتيح المختلفة تقابلها قيم سمات مختلفة.
لذلك، عندما يستخدم
GROUP BYدالةً تجلب قيمة سمة باستخدام المفتاح، تُستبعد هذه الدالة تلقائيًا منGROUP BY.
- تعذّر تحميل القاموس الجاري الوصول إليه.
- حدث خطأ أثناء تنفيذ استعلام على قاموس
cached.