مروان محمود3 نشر 19 سبتمبر 2021 أرسل تقرير نشر 19 سبتمبر 2021 ما الفرق بين مفهوم الbuffer pools وال cache في قواعد البيانات 1 اقتباس
0 شرف الدين حفني نشر 19 سبتمبر 2021 أرسل تقرير نشر 19 سبتمبر 2021 ال 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 المُكلفة للموارد والمؤثرة على الأداء بشكلٍ ملحوظ اقتباس
السؤال
مروان محمود3
ما الفرق بين مفهوم الbuffer pools وال cache في قواعد البيانات
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.