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