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

क्या हम बड़ी संख्या में रिकॉर्ड में वाक्पटुता से बच सकते हैं

आइए इसके एक हिस्से पर एक नजर डालते हैं।

if(!empty($filter['keyword'])) {
   $leads=$leads->where(function ($q) use ($filter) {
          $q->where('ld_name','like', "%".$filter['keyword']."%")
            ->orWhere('ld_email','like', "%".$filter['keyword']."%")
            ->orWhere('ld_phoneno','like', "%".$filter['keyword']."%");
       });
 }

यह कीवर्ड-मिलान योजना स्वाभाविक रूप से, और विनाशकारी रूप से धीमी है। यह वाक्पटु और देशी SQL दोनों में धीमा है। MySQL में किए बिना काम करने का कोई तरीका नहीं है। पूर्ण तालिका स्कैन . यही है, इसे मैचों की तलाश में आपकी तालिका की प्रत्येक पंक्ति की जांच करनी चाहिए और MySQL में, किसी भी अनुक्रमित लुकअप योजना का फायदा नहीं उठा सकता है। क्यों?

column LIKE 'constant%'

column . पर एक इंडेक्स देख सकते हैं और 'constant' . से शुरू होने वाले किसी भी मान को तुरंत ढूँढ़ें . लेकिन

column LIKE '%constant%'

तालिका में प्रत्येक मान को देखना है। अग्रणी % इंडेक्स लुकअप को बेकार बनाता है।

MySQL में आपको MySQL की FULLTEXT सर्चिंग अपने कीवर्ड लुकअप को संभालने के तरीके के रूप में। (पोस्टग्रेएसक्यूएल के हाल के संस्करण इस तरह की क्वेरी को सीधे एक अलग तरह के इंडेक्स के साथ संभाल सकते हैं, लेकिन MySQL नहीं।)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php mysql क्रमबद्ध परिणाम प्राप्त किए गए आदेश के अनुसार

  2. EasyPHP 16.1 ऑटोस्टार्ट http और mysql

  3. लगातार बदलते डेटा के लिए सर्वश्रेष्ठ स्टोरेज इंजन

  4. मैं MySQL त्रुटि #1064 को कैसे ठीक कर सकता हूं?

  5. MySQL ट्रिगर्स सेट करना