"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل ترتيب الشروط في MySQL حيث يؤثر البند على أداء الاستعلام؟

هل ترتيب الشروط في MySQL حيث يؤثر البند على أداء الاستعلام؟

نشر في 2025-03-23
تصفح:636

Does the Order of Conditions in a MySQL WHERE Clause Impact Query Performance?

ترتيب الشروط في mysql حيث الجمل والأداء

عند صياغة استعلامات قاعدة بيانات معقدة مع شروط عديدة ، يمكن أن تؤثر ترتيب هذه الشروط على أداء mysql. ينطوي السيناريو الشائع على مزيج من الظروف الواسعة والتقييدية. ينشأ السؤال: هل يهم إذا ظهرت الحالة التقييدية أولاً أو الأخيرة في الفقرة Where؟

، فإن الإجابة ليست واضحة دائمًا. في بعض المواقف ، يمكن أن يؤثر الأمر على الأداء بسبب سلوك الدائرة القصيرة. النظر في الاستعلامات التالية:

SELECT * FROM clients WHERE 
       (firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND 
       (firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar) AND 
       company = :ugh
SELECT * FROM clients WHERE 
       company = :ugh AND
       (firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND 
       (firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar) 

في الاستعلام الأول ، يتم فحص حالة الشركة أخيرًا ، مما قد يتسبب في البحث عن MySQL من خلال عدد كبير من الصفوف قبل تضييق النتائج. في الاستعلام الثاني ، يتم تقييم حالة الشركة أولاً ، والتي يمكن أن تقلل بشكل كبير من عدد الصفوف التي تحتاج إلى معالجتها. إذا فشلت حالة الشركة في صف معين ، فلن تتابع MySQL تقييم الشروط المتبقية لهذا الصف. ليست قاعدة عامة يمكن تطبيقها في جميع الحالات. من الأفضل إجراء اختبار الأداء على استعلامات محددة لتحديد ما إذا كان إعادة ترتيب الظروف يوفر أي تحسينات ملحوظة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3