رايت الكثير من اصدقائي يتسائل عن هذا الامر لذا قررت ان استشيركم و ارد لهم با الخبر الصحيح
هل من مخاطر لعدم غلق الاتصال با قاعدة البيانات عند كل اتصال ?? اذا كان نعم اخبرني لماذا ?
غلق الاتصال فور عدم الحاجة للتعامل مع قاعدة البيانات تصرف جيد، نفس الشيء بالنسبة للملفات.
لا يوجد أي خطر كبير. ربما فقط بضعة Megabytes زائدة مع المئات من المستخدمين و مواجهة رسالة عدم القدرة على الاتصال أحيانا.
لا يوجد فرق كبير إن كان إغلاق الاتصال في آخر كود الموقع.
عدد الاتصالات مع قاعدة البيانات محدود، 151 افتراضيا في MySQL، المصدر:
نعم يجب غلق الإتصال. هناك limits في عدد ال connection من ناحية ال client (موقعك Web app) ومن ناحية ال server (قاعدة البيانات).
فال client لا يستطيع إنشاء connection جديد في حالة نفذت ال Ephemeral port (
-في جهازي هناك 28, 232 بورت فقط يمكن استخدامه لإنشاء TCP connections وبعض منها مستخدم في تطبيقات أخرى، هذا يعني اذا قمت بجعل جهازي كخادم ويب، يمكنني فقط خدمة أول 470 زائر للموقع في الثانية الواحدة. بافتراض أن الزائر يغلق ال connection بعد ثانية فقط-
من ناحية السيرفر، راجع mysql max connections.
عموما، فتح وغلق الإتصال لكل طلب يشكل performance issue في المواقع الضخمة. واستخدام Connection Pool لإدارة ال connections هو الحل الأمثل.
التعليقات