لنفرض أن لدينا برنامج بسيط للموبايل مثل تروكولر , ولنفرض أنهم يستخدموا جدول واحد وهيكلته كالتالي :
Table_NumbersOfMobile
== id
== name_caller
== mobile_caller
عندما يتصل شخص فسيقوم البرنامج بإرسال طلب كالتالي :
الأن في بي أتش بي نفترض أن البحث سيكون بإستعلام سيكول كالتالي : select name_caller from NumbersOfMobile where mobile_calle = '$_GET[caller]' limit 1
حسنا ... هذا غير صحيح لأن عدد كبير من المتصلين يصل إلى عشرة آلاف في الثانيه يقومون بعمل إستعلام مما يؤدي إلى إختناق الخادم , لا أعلم ولكن هذا ما أتوقع حدوثه خصوصا ان عدد السجلات في قاعدة البيانات يصل إلى مئتي مليون سجل !
حسنا ... ماهي إمكانيه تنفذ ذلك ؟ وكيف تتعامل البرامج مع مثل هذه الأمور ؟
اعتقد ان افتراضك خاطئ قليلاً ..
اعتقد ان هذه البرامج تتعامل باستخدام بروتوكول UDP او ربما TCP لكن قطعاً ليس HTTP !
كما ان الاستعلام لا اعتقد انه موجود بلشكل الذي وضعته انت .. ربما يكون موجوداً داخل View تستدعى من خلال Stored Procedure, وليس مدمجاً بلكود.
كما ان 10 الاف استعلام في الثانية ليست مشكلة كبيرة .. خصوصاً اذا استخدمنا ال Grid Computing
حسناً انا اتحدث من خلفية اوراكل, ولا اعتقد ان MySQL ستختلف بشكل كبير .. فلمفهوم واحد.
التعليقات