من اكثر الاشياء المزعجة لي عند البرمجة عندما اجد بعض الاكواد البرمجية يمكن كتبتها بطرقتين
احدهم يعطي البرمجة سرعة ولاخر اكثر دقة ونتائجه مرضية جدا ولكن بطئ ويسبب استعلامات كثيرة .
ولتوضيح سوف احول وضع مثال حتى تتكتمل الصورة ان شاء الله
لنفترض لدي 3 جداول الاول:جدول الاعضاء الثاني:جدول الاقسام الثالث: جدول المواضيع
ترتبط هذي الجدول مع بعضها عبر جدول الاقسام هناك حقل في جدول الاعضاء يحوي على رقم القسم ونفس الشي في جدول المواضيع
بطبع ليس هنا حتى الان اي مشكلة فعملية الربط مكتملة لكن لسبب ما اريد نسخ موضوع من جدول المواضيع
الى حقل موجود دخل جدول الاعضاء حسب القسم الذي ينتمي له العضوا اي ان رقم القسم للموضوع = رقم القسم للعضو
لكن لسبب ما اريد نسخ حقيق وليس بدمج الجداول بستخدام دوال SQL
بستخدام php توصلت لحلين الاول :
بعمل while لجدول الاعضاء في داخل while نقوم بجلب رقم القسم ثم نعمل استعلام احادي عشوائي في جدول المواضيع
ثم نعمل نسخ للموضوع بستعلام اخر .
هذا الحل جيد لكن لو كان لدي 10000 عضوا هذا راح يسبب 20000 استعلام واكيد بطئ في الاداء .
الحل الثاني :
في البداية راح نعمل while لجدول الاقسام ثم نقوم بجلب رقم القسم ثم نعمل استعلام احادي عشوائي في جدول المواضيع
ثم نخزن البيانات في مصفوفة .
ثم نعمل while لجدول الاعضاء في داخل while نقوم بجلب رقم القسم ثم نجلب الموضوع لكن هذه المره من المصفوفة
هذا الحل افضل من السابق لو كان عندي 10000 راح يسبب 10000 استعلام فقط لكن سئ لسبب انه راح ينسخ نفس
الموضيع يعني الي في قسم معين لديهم نفس الموضوع بينما في الحل الاول التكرار اقل بمراح .
هذا المثال هو للتوضيح فقط
لكن لدي مشكلة تشبه المثال السابق الى حد ما لذا حبيت الشارك معك ما توصلت له واريد اراكم وحلول اخرى
لعل خبرتي لم تساعدني للوصول لحل مثالي ولعل خبرتكم تصل بي الى افضل حل ممكن بدون تكرار وبدون بطئ او كثرة استعلامات
التعليقات