ترتيب الشروط في 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