2013-01-01 11 views
5

यदि मैं अपने MySQL क्वेरी में ; जोड़ता हूं तो यह max_allowed_packet लंबाई के विरुद्ध गिना जाता है? रिक्त स्थान जोड़ने के बारे में क्या? क्या यह इसके खिलाफ गिनती है? क्या MySQL स्वचालित रूप से ; जोड़ता है यदि यह मौजूद नहीं है?max_allowed_packet विचारों में क्या लेता है?

यानी।

अब तक max_allowed_packet के रूप में लंबाई में एक ही अनुसरण कर रहे हैं संबंध है ?:

INSERT INTO table_name (col_name) VALUES (1) , (2); 
INSERT INTO table_name (col_name) VALUES (1),(2) 

अगर वे एक ही है कि कैसे मैं प्रोग्राम के रूप में पता कर सकते हैं कि कितनी देर तक MySQL समझता है होना करने के लिए क्वेरी कर रहे हैं?

+1

एक छोटा परीक्षण जो आप कर सकते हैं उदाहरण के लिए 1K तक सीमित करने और इससे अधिक क्वेरी बनाने के लिए है। क्वेरी के बाद, रिक्त स्थान जोड़ें या;, MySQL लॉग में आपके पास वर्तमान पैकेट आकार होगा। –

उत्तर

0

नहीं, व्हाइटस्पेस max_allowed_packet के लिए कोई चिंता नहीं है, जो एक सर्वर चर है। जैसा कि आप मशीन पर MySQL क्लाइंट को चेक कर सकते हैं स्ट्रिंग को उचित डेटा प्रकार में परिवर्तित कर देता है, जबकि ऐसा करने से यह अतिरिक्त असंगत सफेद जगह को हटा देता है, और आपका MySQL कनेक्टर भी होता है।

का मतलब है दोनों प्रश्नों ही

के रूप में इलाज तो आप बस SQL ​​क्वेरी की पठनीयता के बारे में चिंतित होना चाहिए और व्हाइटस्पेस भूल कर रहे हैं।

  • चेक Wireshark का उपयोग कर, mysql पैकेट पर कब्जा करने के लिए।

  • यदि गहरी डाइविंग में रूचि है। MySQL क्लाइंट या MySQL कनेक्टर के लिए स्रोत कोड के माध्यम से जाएं जिसका आप उपयोग कर रहे हैं।

0

max_allowed_packet प्राप्त होने के बाद निष्पादित किए जाने वाले SQL कथन की अधिकतम लंबाई निर्दिष्ट करता है और सर्वर द्वारा पूर्व संसाधित किया जाता है; उदाहरण के लिए, सम्मिलित मूल्यों (यदि कोई हो) की सूची का निर्माण शामिल है। तो, उस समय तक, कोई पिछली जगह नहीं है और इस तरह की चीजें हैं। मुझे ";" के बारे में निश्चित नहीं है, लेकिन मेरा सबसे अच्छा अनुमान यह है कि यदि यह मौजूद नहीं है, तो यह आपके कथन को पूर्व प्रसंस्करण करते समय जोड़ा जाता है।

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