mysql - Why the rows returns by "explain" is not equal to count()? -


  mysql & gt; तालिका से गिनती (*) चुनें जहां relation_title = 'xxxxxxxxx'; + ---------- + | गिनती (*) | + ---------- + | 12 9 1 9 58 | + ---------- + mysql & gt; तालिका से * चयन करें जहां relation_title = 'xxxxxxxxx' चुनें; + ---- + ------------- + --------- + - | आईडी | Select_type | पंक्तियाँ | + ---- + ------------- + --------- + - | 1 | सरल | 1274785 | + ---- + ------------- + --------- + -  

मुझे लगता है कि "चुनें से चुनें * तालिका जहां relation_title = 'xxxxxxxxx'; " इंडेक्स द्वारा relation_title = 'xxxxxxxxx' की पंक्तियां देता है लेकिन यह सही संख्या से छोटा है।

यह दिखा रहा है कि आपके परिणाम प्राप्त करने के लिए यह कितनी पंक्तियों से गुजर रहा है ।

गलत डेटा का कारण यह है कि EXPLAIN सटीक नहीं है, यह आपकी तालिका के बारे में संग्रहीत जानकारी के आधार पर आपके डेटा के बारे में अनुमान लगाता है।

यह बहुत उपयोगी जानकारी है, उदाहरण के लिए कई तालिकाओं में जोन कर रहे हैं और आप यह सुनिश्चित करना चाहते हैं कि आप प्रत्येक पंक्ति के लिए जानकारी की एक पंक्ति के लिए संपूर्ण जुड़ी हुई तालिका के माध्यम से नहीं चल रहे हैं।

यहां 608 पंक्ति तालिका पर एक परीक्षा है। / P>

  SELECT COUNT (id) से तालिका WHERE user_id = 1  

परिणाम:

  COUNT (id) 512   

और यहाँ समझाएं

  तालिका से WHOSE SELECT COUNT (id) का पता लगाएं user_id = 1  

परिणाम:

  आईडी पंक्तियों 1 608  

Comments

Popular posts from this blog

c++ - Linux and clipboard -

What is expire header and how to achive them in ASP.NET and PHP? -

sql server - How can I determine which of my SQL 2005 statistics are unused? -