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

बिना किसी शर्त के सभी का चयन करने पर महंगा पूर्ण तालिका स्कैन

अधिक विवरण के लिए नीचे दिया गया लिंक देखें

https://dev.mysql.com/doc /refman/8.0/hi/table-scan-avoidance.html

पूर्ण तालिका स्कैन का कारण नीचे है

  • तालिका इतनी छोटी है कि कुंजी लुकअप से परेशान होने की तुलना में तालिका स्कैन करना अधिक तेज़ है। यह 10 से कम पंक्तियों और छोटी पंक्ति लंबाई वाली तालिकाओं के लिए सामान्य है।

  • अनुक्रमित कॉलम के लिए ON या WHERE क्लॉज में कोई प्रयोग करने योग्य प्रतिबंध नहीं हैं।

  • आप अनुक्रमित स्तंभों की निरंतर मानों के साथ तुलना कर रहे हैं और MySQL ने (इंडेक्स ट्री के आधार पर) गणना की है कि स्थिरांक तालिका के बहुत बड़े हिस्से को कवर करते हैं और यह कि तालिका स्कैन तेज़ होगा

  • आप किसी अन्य कॉलम के माध्यम से कम कार्डिनैलिटी वाली कुंजी का उपयोग कर रहे हैं (कई पंक्तियाँ कुंजी मान से मेल खाती हैं)। इस मामले में, MySQL मानता है कि कुंजी का उपयोग करके यह संभवतः कई कुंजी लुकअप करेगा और एक टेबल स्कैन तेज होगा।

पूर्ण तालिका स्कैन से बचने के लिए नीचे दिए गए उपयोग का उपयोग करें:

  • स्कैन की गई तालिका के प्रमुख वितरणों को अद्यतन करने के लिए ANALYZE TABLE tbl_name का उपयोग करें।

  • MySQL को यह बताने के लिए स्कैन की गई तालिका के लिए FORCE INDEX का उपयोग करें कि दिए गए इंडेक्स का उपयोग करने की तुलना में टेबल स्कैन बहुत महंगे हैं:

    जैसे चुनें * t1 से, t2 फोर्स इंडेक्स (index_for_column)जहां t1.col_name=t2.col_name;




  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-Server5.5 के साथ सर्वर पर mysql-libs स्थापित करना

  2. बैश से mysql प्रश्नों को कैसे फीड करें

  3. PHP के साथ MySQL फ़ील्ड की टिप्पणियों तक पहुँचें

  4. नई लाइन विभाजक group_concat समारोह के लिए काम नहीं करता

  5. SQLAlchemy ORM के साथ बल्क इंसर्ट