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

MySQL अनुक्रमण और फाइलों का उपयोग करना

आपकी पहली क्वेरी में, ORDER BY views_point . का उपयोग करके किया जाता है INDEX, क्योंकि इसका उपयोग क्वेरी के WHERE भाग में किया गया था और इसलिए MySQL में छँटाई के लिए उपयोग किया जा सकता है।

दूसरी क्वेरी में, MySQL एक भिन्न अनुक्रमणिका, listing_pcs का उपयोग करके WHERE भाग को हल करता है . इसका उपयोग ORDER BY शर्त को पूरा करने के लिए नहीं किया जा सकता है। MySQL इसके बजाय फाइलसॉर्ट का उपयोग करता है, जो सबसे अच्छा विकल्प है यदि किसी इंडेक्स का उपयोग नहीं किया जा सकता है।

MySQL केवल अनुक्रमणिका का उपयोग क्रमबद्ध करने के लिए करता है यदि अनुक्रमणिका वही है जो WHERE स्थिति में उपयोग की जाती है। यह है मैनुअल इसका मतलब है:

तो आप क्या कर सकते हैं:

  1. अपना sort_buffer_size increasing बढ़ाने का प्रयास करें फाइलसॉर्टिंग को यथासंभव प्रभावी बनाने के लिए कॉन्फिग विकल्प। बड़े परिणाम जो सॉर्ट बफर के लिए बहुत बड़े होते हैं, MySQL को सॉर्ट को टुकड़ों में तोड़ देता है, जो धीमा है।

  2. MySQL को एक अलग इंडेक्स चुनने के लिए बाध्य करें। यह ध्यान देने योग्य है कि अलग-अलग MySQL संस्करण अलग-अलग डिफ़ॉल्ट इंडेक्स चुनते हैं। उदाहरण के लिए, संस्करण 5.1 काफी खराब है क्योंकि इस रिलीज के लिए क्वेरी ऑप्टिमाइज़र को काफी हद तक फिर से लिखा गया था और इसमें बहुत सारे शोधन की आवश्यकता थी। संस्करण 5.6 बहुत अच्छा है।

    SELECT *
    FROM listings
    FORCE INDEX (views_point)
    WHERE (`publishedon_hourly` BETWEEN
           UNIX_TIMESTAMP( '2015-09-5 00:00:00' )
           AND UNIX_TIMESTAMP( '2015-09-5 12:00:00' ))
      AND (published =1)
      AND cat_id IN ( 1, 2, 3, 4, 5 )
    ORDER BY `views_point` DESC
    LIMIT 10
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हिम तेंदुआ + रूबी 1.9.1 + माईएसक्यूएल जेम =बड़ी समस्या

  2. मैक ओएस एक्स . पर पायथन और माइस्क्ल

  3. जब उपयोगकर्ता टेक्स्टबॉक्स में कुछ भी दर्ज नहीं करता है तो तालिका रिक्त स्थान अपडेट करती है

  4. हैंडलर फॉर नॉट फाउंड कैसे काम करता है और इसका उपयोग क्या है?

  5. password_hash, password_verify, MySQL गलतफहमी?