الانتقال إلى المحتوى الرئيسي
عند استخدام محرك جدول Memory على ClickHouse Cloud، لا تُنسخ البيانات عبر جميع العقد (بحكم التصميم). ولضمان توجيه جميع الاستعلامات إلى العقدة نفسها وأن يعمل محرك جدول Memory كما هو متوقع، يمكنك القيام بأحد الإجراءات التالية:
  • تنفيذ جميع العمليات ضمن الجلسة نفسها
  • استخدام عميل يعتمد TCP أو الواجهة الأصلية (مما يوفّر دعم الاتصالات الثابتة)، مثل clickhouse-client
يخزّن محرك Memory البيانات في RAM بصيغة غير مضغوطة. وتُخزَّن البيانات تمامًا بالشكل الذي استُقبلت به. وبعبارة أخرى، فالقراءة من هذا الجدول مجانية بالكامل. تتم مزامنة الوصول المتزامن إلى البيانات. وتكون الأقفال قصيرة: فلا تعيق عمليات القراءة والكتابة بعضها بعضًا. الفهارس غير مدعومة. وتتم القراءة بشكل متوازٍ. تتحقق أعلى إنتاجية (أكثر من 10 GB/sec) في الاستعلامات البسيطة، لأنه لا توجد قراءة من القرص، ولا فك ضغط، ولا إلغاء تسلسل للبيانات. (ويجدر بالذكر أن إنتاجية محرك MergeTree تكون في كثير من الحالات مرتفعة بالقدر نفسه تقريبًا.) عند إعادة تشغيل الخادم، تختفي البيانات من الجدول ويصبح الجدول فارغًا. وعادةً لا يكون استخدام محرك الجدول هذا مبررًا. ومع ذلك، يمكن استخدامه للاختبارات، وللمهام التي تتطلب أقصى سرعة مع عدد صغير نسبيًا من الصفوف (حتى نحو 100,000,000 تقريبًا). يستخدم النظام محرك Memory للجداول المؤقتة التي تحتوي على بيانات استعلام خارجية (انظر قسم “البيانات الخارجية لمعالجة استعلام”)، وكذلك لتنفيذ GLOBAL IN (انظر قسم “معاملات IN”). يمكن تحديد حدود دنيا وعليا لتقييد حجم جدول محرك Memory، مما يتيح له فعليًا أن يعمل كمخزن مؤقت دائري (انظر معلمات المحرك).

معلمات المحرك

  • min_bytes_to_keep — الحد الأدنى من البايتات التي يجب الاحتفاظ بها عندما يكون جدول الذاكرة محدود الحجم.
    • القيمة الافتراضية: 0
    • يتطلب max_bytes_to_keep
  • max_bytes_to_keep — الحد الأقصى من البايتات التي يجب الاحتفاظ بها في جدول الذاكرة، حيث تُحذف أقدم الصفوف عند كل إدراج (أي مخزن مؤقت دائري). قد يتجاوز الحد الأقصى للبايتات الحد المحدد إذا كانت أقدم دفعة من الصفوف المطلوب حذفها ستنخفض عن حد min_bytes_to_keep عند إضافة كتلة كبيرة.
    • القيمة الافتراضية: 0
  • min_rows_to_keep — الحد الأدنى من الصفوف التي يجب الاحتفاظ بها عندما يكون جدول الذاكرة محدود الحجم.
    • القيمة الافتراضية: 0
    • يتطلب max_rows_to_keep
  • max_rows_to_keep — الحد الأقصى من الصفوف التي يجب الاحتفاظ بها في جدول الذاكرة، حيث تُحذف أقدم الصفوف عند كل إدراج (أي مخزن مؤقت دائري). قد يتجاوز الحد الأقصى للصفوف الحد المحدد إذا كانت أقدم دفعة من الصفوف المطلوب حذفها ستنخفض عن حد min_rows_to_keep عند إضافة كتلة كبيرة.
    • القيمة الافتراضية: 0
  • compress - ما إذا كانت البيانات تُضغط في الذاكرة.
    • القيمة الافتراضية: false

الاستخدام

ضبط الإعدادات
تعديل الإعدادات
ملاحظة: يمكن تعيين معامِلَي الحدّ الأقصى لكل من bytes وrows في الوقت نفسه، ومع ذلك سيُلتزم بالحدود الدنيا لـ max وmin.

أمثلة

وأيضًا، بالنسبة للصفوف:
آخر تعديل في ٢ يوليو ٢٠٢٦