اﻻخوان كفوا ووفوا
عملت قبل عدة ايام على موقع ﻷخ معنا في سوالف يشكو بطئ موقعه
كان السبب اﻷساسي هو نظام الكاش
فاﻻخ مبرمج السكربت عمل كاش للقوالب(عامل نظام قوالب خاص به) وحدها وربما ظن انها مفيدة لتسريع الموقع
ولكن ذلك لم يكن شيئًا بالنسبة للاتصال بقاعدة البيانات اذ ان اﻻستعلامات كانت 8000 في الثانية
مما ادى إلى بطئ استجابة محرك قواعد البيانات وبالتالي بطئ الموقع وخاصة مع اﻻستعلامات الكبيرة
أي التي تأتي بنتائج كبيرة فهي ذات التأثير اﻷكبر.
بالنسبة لعملية اﻻتصال بقاعدة البيانات بحد ذاتها فهي من العمليات المكلفة اذ انها تتطلب تسجيل وتحقق من بيانات المستخدم
قبل اتاحة استعمال اﻻستعلامات
لذا من اﻻفضل ان تعمل لها lazy loading في php5 عن طريق استعمال الكلاسات
اذ ان ال magic method المسماة __autoload في كلاسات ال php يتم استدعاؤها عندما لا تجد الكلاس
المطلوب.
وبالتالي تعمل استدعاء لكلاس قواعد البيانات واﻻتصال بها فقط عندما تحتاج لذلك وذلك عن طريق autoload
هناك تقنية في الجافا لم اجدها كاملة في ال php,وتسمى connection pools ، اي انك تحتفظ في اﻻتصال بقاعدة البيانات
في الذاكرة ، وتقوم باستدعاءه وقت الحاجة(يعني تكون مسجل دخول للقاعدة)
اﻻمر ذاته موجود في php مع الدالة mysql_pconnect ولكنها غير مستقرة وتسبب مشاكل من حيث الوصول
لعدد اﻻتصالات اﻻقصى بقواعد البيانات.
الشيء اﻷخير الذي لاحظته في البرمجة سابقة الذكر، هو ان المبرمج وقد كان كلف نفسه وعمل كلاس لقواعد البيانات، لكن
لم يقم عمليًا باﻻستفادة من ميزات هذا اﻻمر، اذ انه يعيد النتيجة ك mysql result set يعني يعيد:
كود PHP:
mysql_query($query)
طيب ماذا سأستفيد من الكلاس اذا لم اكن اقدر ان اعمل كاش للنتائج قبل ارجاعها للبرنامج، اذ ان هذا الكائن غير قابل للتكييش
بل يجب عليك ان تقوم بارجاع مصفوفة من كلاس قواعد البيانات .
ايضًا لن تستطيع ان تقوم باستعمال انواع اخرى من قواعد البيانات اذ انك ترجع كائن تابع لل mysql وحدها.