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

श्रेणी तालिका में कुशल लुकअप

यह देखते हुए कि आपके पास पहले से ही ip_start . पर एक अनुक्रमणिका है , यह मानते हुए कि आप प्रति आईपी एक एक्सेस बनाना चाहते हैं (1234 इस उदाहरण में):

select organization from (
    select ip_end, organization
    from iptable
    where ip_start <= 1234
    order by ip_start desc
    limit 1
) subqry where 1234 <= ip_end

यह आपकी अनुक्रमणिका का उपयोग स्कैन शुरू करने के लिए करेगा जो limit 1 . के कारण तुरंत बंद हो जाता है . लागत केवल एक साधारण अनुक्रमित पहुंच की तुलना में मामूली अधिक होनी चाहिए। बेशक, यह तकनीक इस तथ्य पर निर्भर करती है कि ip_start . द्वारा परिभाषित श्रेणियां और ip_end कभी ओवरलैप न करें।

आपके मूल दृष्टिकोण के साथ समस्या यह है कि 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. MySQL अद्यतन:टी-एसक्यूएल डेवलपर्स के लिए शीर्ष 5 युक्तियाँ

  2. PHP से डेटाबेस तक पहुँचने का सबसे अच्छा तरीका क्या है?

  3. MySQL योग अंक द्वारा तालिका समूह में शामिल हो रहा है

  4. डॉकर MYSQL '[2002] कनेक्शन अस्वीकृत'

  5. MySQL में नो-रो दिनों में प्रति दिन पंक्तियों की संख्या कैसे समूहित करें?