الانتقال إلى المحتوى الرئيسي

كيف يمكنني التحقق من استخدام ذاكرة التخزين المؤقت للاستعلامات في استعلامي؟

اطّلع على هذا المثال باستخدام clickhouse client وخدمة ClickHouse Cloud. أنشئ جدول query_cache_test

استخدام clickhouse client

املأ الجدول ببعض البيانات:
فعِّل سجلات التتبّع:
نفّذ استعلامًا مع طلب استخدام ذاكرة التخزين المؤقت للاستعلامات (بإلحاق SETTINGS use_query_cache=true بالاستعلام):
أعِد تنفيذ الاستعلام نفسه:
الآن لاحظ أوجه الاختلاف في سجلات TRACE المرتبطة بـ QueryCache بين: التنفيذ الأول:
في التنفيذ الثاني:
في التنفيذ الأول، لم يتم العثور على أي إدخال بطبيعة الحال (No entry found for query SELECT...)، لذا قام ClickHouse بالفعل بتخزين (Stored result of query SELECT...) هذا الإدخال لنا. في التنفيذ الثاني، استخدم الاستعلام ذاكرة التخزين المؤقت للاستعلامات لأنه وجد الإدخال مخزنًا بالفعل (Entry found for query SELECT...).

باستخدام SQL فقط

بمجرد تنفيذ أوامر SQL، ومن دون فحص trace logs الخاصة بـ clickhouse client، يمكن أيضًا التحقق مما إذا كانت ذاكرة التخزين المؤقت للاستعلامات مستخدمةً عبر فحص جداول system ذات الصلة:
في النتائج الأخيرة، نرى قيمة 1 لـ QueryCacheMisses عند أول تشغيل للاستعلام SELECT 1 SETTINGS use_query_cache=true;، وحدث QueryCacheHits مرتبطًا بالتنفيذ الثاني للاستعلام. ضع في اعتبارك أيضًا أن الحد الأقصى الافتراضي لحجم مُدخل cache هو 1048576 بايت (= 1 MiB)، وأن النتائج تُخزَّن افتراضيًا في cache لمدة 60 ثانية فقط (يمكنك استخدام query_cache_ttl=300 في SETTINGS، على سبيل المثال، لتخزين نتيجة ذاكرة التخزين المؤقت للاستعلامات لمدة 5 دقائق بدلًا من ذلك). يمكنك العثور على معلومات أكثر تفصيلًا حول ClickHouse ذاكرة التخزين المؤقت للاستعلامات هنا
آخر تعديل في ١ يوليو ٢٠٢٦