2010-09-03 13 views
7

क्या इन स्थितियों में कहीं भी कोई स्पष्टीकरण है?mysql प्रोफाइलर "डेटा भेज रहा है"

http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html

मेरे विशिष्ट प्रश्न इस क्वेरी के संबंध में है:

select count(*) 
from 135_5m.record_updates u, 135_5m.records r 
where r.record_id = u.record_id and 
    (u.date_updated > null or null is null) and 
    u.date_updated <= '2011-01-03'; 

जो एक नंबर प्रदान करता है - 4053904. तो क्यों समय के बहुमत "डेटा भेजा जा रहा" में खर्च किया जाये? क्या यह सिर्फ खराब नाम है? निश्चित रूप से "डेटा भेजना" केवल डेटा भेजने से ज्यादा करना चाहिए?

+--------------------------------+-----------+-------+ 
| Status       | Duration | Swaps | 
+--------------------------------+-----------+-------+ 
| starting      | 0.000224 |  0 | 
| checking query cache for query | 0.000188 |  0 | 
| checking permissions   | 0.000012 |  0 | 
| checking permissions   | 0.000017 |  0 | 
| Opening tables     | 0.000036 |  0 | 
| System lock     | 0.000015 |  0 | 
| Table lock      | 0.000067 |  0 | 
| init       | 0.000105 |  0 | 
| optimizing      | 0.000052 |  0 | 
| statistics      | 0.000254 |  0 | 
| preparing      | 0.000061 |  0 | 
| executing      | 0.000017 |  0 | 
| Sending data     | 32.079549 |  0 | 
| end       | 0.000036 |  0 | 
| query end      | 0.000012 |  0 | 
| freeing items     | 0.000089 |  0 | 
| storing result in query cache | 0.000022 |  0 | 
| logging slow query    | 0.000008 |  0 | 
| logging slow query    | 0.000008 |  0 | 
| cleaning up     | 0.000011 |  0 | 
+--------------------------------+-----------+-------+ 
+0

विषय से बाहर है, लेकिन इस बिट के उद्देश्य क्या है की majrity समय लग सकता है 'u.date_updated> अशक्त या शून्य शून्य है? निश्चित रूप से यह हमेशा सच है? –

+1

क्वेरी मूल रूप से जावा कोड में एक तैयारस्थान है। मैंने बदल दिया? प्रदर्शन के परीक्षण के लिए वास्तविक मूल्य के साथ मेरे कोड में। – andersonbd1

उत्तर

10

http://dev.mysql.com/doc/refman/5.0/en/general-thread-states.html

निष्पादित साधन धागा है, निष्पादन शुरू कर दिया भेजा जा रहा है डेटा जाहिरा तौर पर दोनों पंक्तियों के प्रसंस्करण और गिनती वापस ग्राहक को भेजने से शामिल किया गया।

0

ग्राहक के लिए डेटा भेजने से पहले, mysql डेटा पढ़ने की जरूरत है, पढ़ने के लिए डेटा के चरण "डेटा भेजने"

संबंधित मुद्दे