اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

ال cacheاو ال (query cache) في قواعد البيانات تعبر عن تخزين النتائج للجملة الإستعﻻمية الواحدة(query) ,فمثلاً لو قمنا بتنفيذ تلك الإستعﻻمة

select * from users where rating between(10,100)

سيتم تخزين الناتج في الcache وهو مكان في الذاكرة يكون الوصول إليه أسهل من الوصول إلى القرص الصلب, أو يكون مكان بين المعالج وبين الذاكرة, فعند تنفيذ نفس الإستعﻻمة في المرة القادمة يتم تنفيذها في وقت أقل حيث لا يحتاج نظام قواعد البيانات إلى البحث عبر جميع الجداول , فقد تم تخزين الناتج بالفعل ولكن إن قمنا بتنفيذ إستعﻻمة أخرى حتى وإن كانت تحتاج بعضاً من البيانات التي حصلنا عليها من الإستعﻻمة السابقة , فسيقوم نظام قواعد البيانات بتنفيذ الإستعﻻمة بدلاً من جلب البيانات المشتركة من الcache

بينما ال buffer pools ﻻ يعتمد على إستعﻻمة معينة, ففي قواعد البيانات عندما تبحث عن بيانات معينة يتم التساؤل أولاً إن كانت تلك البيانات موجودة في الbuffer pools (والذي هو بالمناسبة جزءاً في الذاكرة يتم تخصيصه من أجل قواعد البيانات) , لو كانت الإجابة بنعم يتم جلبها إلى المستخدم, لو كانت الإجابة ب"لا" يتم نقلها من القرص الصلب إلى الbuffer pool ومن ثم جلبها للمستخدم, في المرة القادمة إن قمنا بتنفيذ إستعﻻمة مختلفة ولكن تحتاج إلى نفس البيانات ﻻ نحتاج إلى الذهاب إلى القرص الصلب, حيث يتم جلب البيانات بشكل تلقائي من الbuffer pool ,وذلك يُعد أسرع وأفضل للأداء, ومن المُستحسن أن يكون حجم الbuffer pool مناسب للبيانات, ولكن قاعدة الإبهام أن يكون مساحته بمقدار 80% من الذاكرة, إن أصبح مساحة الbuffer poolأقل من المطلوب سيؤدي ذلك إلى مشاكل في الأداء بسبب كثرة عمليات الswapping المُكلفة للموارد والمؤثرة على الأداء بشكلٍ ملحوظ

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...