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

जब दिनांक फ़ंक्शन के साथ कॉलम रैप करते हैं तो mysql हिट इंडेक्स क्यों होता है?

EXPLAIN रिपोर्ट की व्याख्या करना कठिन माना जाता है। उन्होंने कुछ क्षेत्रों में बहुत अधिक जानकारी को ओवरलोड कर दिया है। आप कोशिश कर सकते हैं

type: index इंगित करता है कि यह एक इंडेक्स-स्कैन कर रहा है , जिसका अर्थ है कि यह अनुक्रमणिका में प्रत्येक प्रविष्टि पर जा रहा है।

यह एक टेबल-स्कैन के रूप में समान प्रविष्टियों पर जाता है, सिवाय इसके कि यह क्लस्टर (प्राथमिक) अनुक्रमणिका के बजाय द्वितीयक अनुक्रमणिका के विरुद्ध है।

जब हम देखते हैं type: index , EXPLAIN possible_keys: NULL . दिखाता है जिसका अर्थ है कि यह कुशलतापूर्वक खोज के लिए किसी भी अनुक्रमणिका का उपयोग नहीं कर सकता है। लेकिन यह key: add_time . भी दिखाता है जिसका अर्थ है कि वह इंडेक्स-स्कैन के लिए जिस इंडेक्स का उपयोग कर रहा है वह है add_time

इंडेक्स-स्कैन इस तथ्य के कारण है कि MySQL अभिव्यक्तियों या फ़ंक्शन कॉल को स्वयं अनुकूलित नहीं कर सकता है। उदाहरण के लिए, यदि आप किसी विशिष्ट माह के साथ तिथियों की खोज करने का प्रयास करते हैं, तो आप month(add_time) = 4 खोज सकते हैं। लेकिन वह add_time पर अनुक्रमणिका का उपयोग नहीं करेगा क्योंकि उस महीने की तिथियां अनुक्रमणिका के माध्यम से बिखरी हुई हैं, सभी को एक साथ समूहीकृत नहीं किया गया है।

आप जानते होंगे कि date(add_time) सूचकांक द्वारा खोजा जाने में सक्षम होना चाहिए, लेकिन MySQL उस अनुमान को नहीं बनाता है। MySQL बस यह देखता है कि आप एक फ़ंक्शन का उपयोग कर रहे हैं, और यह इंडेक्स का उपयोग करने का प्रयास भी नहीं करता है।

इसलिए MySQL 5.7 ने जेनरेट किए गए कॉलम हमें एक अभिव्यक्ति को अनुक्रमित करने की अनुमति देने के लिए, और MySQL 8.0 ने एक एक व्यंजक के लिए परिभाषित की जाने वाली अनुक्रमणिका हमें पहले जेनरेट किए गए कॉलम को परिभाषित करने की आवश्यकता नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिनांक/समय की तुलना के लिए संचालन के लिए कॉलेशन का अवैध मिश्रण

  2. लेख की जानकारी को उसके वोट मूल्यों के आधार पर अपडेट करने के लिए क्रॉन जॉब सेट करें

  3. एक प्रश्न पूछें - MySQL और PHP

  4. मारियाडब कनेक्शन क्लाइंट:mysql 8.0 . पर उपयोगकर्ता (पासवर्ड का उपयोग करके:नहीं) के लिए प्रवेश निषेध

  5. PHP/MySQL - एक नेविगेशन मेनू पदानुक्रम का निर्माण