Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कौन सी SQL क्वेरी बेहतर है, इसके विरुद्ध मिलान करें या LIKE करें?

अपडेट करें

MySQL 5.6 के अनुसार और बाद में, InnoDB तालिकाएं Match... Against . का समर्थन करती हैं ।

पहला बहुत . है बेहतर। MyISAM . पर तालिकाओं में यह उन स्तंभों के विरुद्ध एक पूर्ण पाठ अनुक्रमणिका का उपयोग करेगा। दूसरा प्रत्येक पंक्ति पर एक कॉनकैट करते हुए एक पूर्ण टेबल स्कैन करेगा और फिर एक तुलना करेगा।

LIKE केवल तभी प्रभावी होता है जब आप इसे इसके विरुद्ध कर रहे हों:

  • एक कॉलम (किसी फ़ंक्शन का परिणाम नहीं जब तक कि आपका विशेष डेटाबेस विक्रेता कार्यात्मक अनुक्रमणिका का समर्थन नहीं करता - उदाहरण के लिए Oracle - और आप उनका उपयोग कर रहे हैं);
  • कॉलम की शुरुआत (यानी LIKE 'blah%' LIKE '%blah%' . के विपरीत ); और
  • एक स्तंभ जिसे अनुक्रमित किया गया है।

यदि उन शर्तों में से कोई एक सत्य नहीं है तो SQL इंजन के लिए क्वेरी निष्पादित करने का एकमात्र तरीका पूर्ण तालिका स्कैन करना है। यह लगभग 10-20 हजार पंक्तियों के तहत प्रयोग करने योग्य हो सकता है। इसके अलावा यह जल्दी से अनुपयोगी हो जाता है।

नोट: MySQL पर MATCH के साथ एक समस्या यह है कि ऐसा लगता है कि यह केवल पूरे शब्दों से मेल खाता है, इसलिए 'bla' की खोज 'blah' के मान वाले कॉलम से मेल नहीं खाएगी, लेकिन 'bla*' की खोज होगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL संग्रहीत प्रक्रिया में डायनामिक SQL कैसे प्राप्त करें

  2. Microsoft .NET का उपयोग करके MySQL से कैसे जुड़ें?

  3. TIMEDIFF () उदाहरण – MySQL

  4. डेटा के बिना MySQL निर्यात स्कीमा

  5. एक स्ट्रिंग से बचने का क्या मतलब है?