OR UPPER(lu.opis) LIKE UPPER('%SomeName%')
3 प्रदर्शन समस्याएं हैं:
OR
खराब अनुकूलित है। अनिवार्य रूप से, सभी पंक्तियों की जांच के लिए तालिका को स्कैन किया जाना चाहिए। अनुक्रमणिका के मदद करने की संभावना नहीं है।UPPER(indexed-column)
उस कॉलम पर एक इंडेक्स का उपयोग करने से रोकता है। यह आसानी से उस कॉलम कोCOLLATION
. घोषित करने के लिए काम किया जाता है वह "केस असंवेदनशील" है -- यानी,utf8_unicode_ci
. जैसा कुछ;_ci
पर ध्यान दें ।LIKE '%...
अग्रणी . के कारण अनुक्रमणिका का उपयोग नहीं कर सकते वाइल्डकार्ड।
इसके अलावा, आमतौर पर ऐसा होना मूर्खता है
32497 row(s) returned
आप इतनी सारी पंक्तियों का क्या करने जा रहे हैं? नेटवर्क स्थानांतरण समय महत्वपूर्ण होगा, भले ही क्वेरी स्वयं न हो।
LIKE
. को "हल" करने के लिए , OR
, और UPPER
एक ही बार में सभी समस्याओं के लिए, पाठ को एक ही तालिका में एक कॉलम में एकत्रित करें। फिर एक FULLTEXT
. प्रदान करें उस कॉलम पर index. द, MATCH ... AGAINST ...
बहुत तेजी से चलेगा -- कम से कम SomeName
. करने के लिए तलाशी। (LEFT JOINs
एक और मामला है।)