PDO::rowCount vs. COUNT(*) في تحليل أداء PHP
عند العمل مع قواعد بيانات SQL باستخدام PDO في PHP، هناك أمر شائع المهمة هي حساب عدد الصفوف المطابقة لمعيار معين. يمكن تحقيق ذلك باستخدام إما PDO::rowCount() أو COUNT(*) في استعلام SQL. ومع ذلك، فإن السؤال الذي يطرح نفسه هو ما هي الطريقة التي توفر أداءً أفضل.
PDO::rowCount() vs.COUNT()
PDO::rowCount() تُرجع القيمة عدد الصفوف المتأثرة بعبارة SQL الأخيرة، والتي قد لا تكون دائمًا نفس عدد الصفوف التي تم إرجاعها. من ناحية أخرى، يسترد COUNT() على وجه التحديد عدد الصفوف التي تفي بمعايير الاستعلام.
داخليًا، يعالج خادم MySQL COUNT() وPDO::rowCount() بشكل مختلف. COUNT() يخصص الذاكرة فقط لنتيجة العد، بينما PDO::rowCount() يخصص الذاكرة ويستعد لجلب مجموعة النتائج بأكملها، الأمر الذي يتضمن حملًا إضافيًا.
بشكل عام، استخدام COUNT() في SQL يعد الاستعلام أكثر كفاءة من استخدام PDO::rowCount() لأنه يعمل على تحسين المعالجة في MySQL.
COUNT(*) vs.COUNT(id)
عند الاستخدام COUNT(*) وCOUNT(id)، يُفضل الأول عادةً لأسباب تتعلق بالأداء.
يسترد COUNT(*) عدد جميع الصفوف، بما في ذلك الصفوف ذات القيم NULL. COUNT(id) يحسب فقط الصفوف التي يحتوي عمود المعرف فيها على قيمة غير NULL.يحتوي MySQL على تحسين يسمح بتقييم COUNT() بشكل أكثر كفاءة من COUNT(id). وذلك لأن حرف البدل () يشير إلى أنه لا يحتاج إلى استرداد أي بيانات فعلية من الجدول، فقط عدد الصفوف.
الاستنتاج
للحصول على الأداء الأمثل عند حساب الصفوف باستخدام PDO في PHP، يوصى باستخدام COUNT() في استعلام SQL بدلاً من PDO::rowCount(). بالإضافة إلى ذلك، عند الاختيار بين COUNT() وCOUNT(id)، يُفضل COUNT(*) بشكل عام بسبب تحسين MySQL.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3