क्या यह मान सेटों की संख्या पर निर्भर करता है? क्या यह INSERT कथन में बाइट्स की संख्या पर निर्भर करता है?MySQL - मैं एक एकल INSERT कथन में कितनी पंक्तियां डाल सकता हूं?
उत्तर
मेरा मानना है कि प्रति पंक्ति डालने के लिए सीमित पंक्तियों की कोई परिभाषित संख्या नहीं है, लेकिन सामान्य रूप से प्रश्नों के लिए अधिकतम प्रकार का अधिकतम आकार हो सकता है।
आप एक INSERT कथन के साथ पंक्तियों की एक अनंत संख्या डाल सकते हैं। उदाहरण के लिए, आप एक संग्रहीत प्रक्रिया निष्पादित कर सकते हैं जिसमें लूप को एक हजार बार निष्पादित किया जाता है, प्रत्येक बार INSERT क्वेरी चलाते हैं।
या आपका आईएनएसईआरटी एक ट्रिगर की यात्रा कर सकता है जो स्वयं एक आईएनएसईआरटी करता है। जो एक और ट्रिगर यात्रा करता है। और इसी तरह।
नहीं, यह मूल्य सेट की संख्या पर निर्भर नहीं है। न ही यह बाइट्स की संख्या पर निर्भर करता है।
आपकी सीमाओं को कितनी गहराई से घोंसला हो सकता है, और यह सीमा है कि आपका कुल विवरण कितना समय है। इन दोनों को संदर्भित किया गया है, विडंबना यह है कि thedailywtf.com पर। हालांकि, ऊपर वर्णित दोनों साधनों को इन सीमाओं के आसपास मिलता है।
आप INSERT ... SELECT
पैटर्न का उपयोग कर असीमित बड़ी संख्या में रिकॉर्ड डाल सकते हैं, बशर्ते आपके पास अन्य सारणी में वे रिकॉर्ड हों या उनका हिस्सा हो।
लेकिन यदि आप INSERT ... VALUES
पैटर्न का उपयोग कर मानों को कड़ी मेहनत कर रहे हैं, तो आपके कथन कितने बड़े/लंबे समय तक सीमित है: max_allowed_packet जो क्लाइंट द्वारा डेटाबेस सर्वर पर भेजे गए SQL कथन की लंबाई को सीमित करता है, और यह किसी भी प्रकार के प्रश्नों को प्रभावित करता है न केवल INSERT कथन के लिए।
क्वेरी सामान्य रूप से max_allowed_packet
तक सीमित है।
यह max_allowed_packet द्वारा सीमित है।
आप इसका उपयोग कर निर्दिष्ट कर सकते हैं: mysqld --max_allowed_packet=32M
यह डिफ़ॉल्ट 16 एम है।
तुम भी में my.cnf में निर्दिष्ट कर सकते हैं/आदि/mysql/
उल्लेख http://forums.mysql.com/read.php?20,161869 लिए, यह आपके mysql के विन्यास के साथ संबंधित है: max_allowed_packet
, bulk_insert_buffer_size
, key_buffer_size
।
आदर्श रूप में, Mysql एकल डालने में पंक्तियों सृष्टि के अनंत संख्या (एक ही बार में) लेकिन जब एक
MySQL ग्राहक या mysqld सर्वर एक पैकेट max_allowed_packet बाइट्स से भी बड़ा प्राप्त करता है, यह एक पैकेट बहुत बड़ी त्रुटि और बंद जारी करता है की अनुमति देते हैं संपर्क।
क्या डिफ़ॉल्ट मान max_allowed_packet चर के लिए है देखने के लिए, MySQL में में निम्न आदेश निष्पादित करें:
show variables like 'max_allowed_packet';
स्टैंडर्ड MySQL स्थापना 1048576 बाइट्स (1MB) का डिफ़ॉल्ट मान है। इसे सत्र या कनेक्शन के लिए उच्च मान पर सेट करके बढ़ाया जा सकता है।
यह मान सेट हर किसी के लिए 500MB के लिए (कि क्या वैश्विक अर्थ है):
show variables like 'max_allowed_packet';
अब यह होना चाहिए:
SET GLOBAL max_allowed_packet=524288000;
नए कनेक्शन के साथ नए टर्मिनल में अपने परिवर्तन की जांच अनंत रिकॉर्ड डालने के लिए किसी त्रुटि के बिना काम करें। 1390 तैयार बयान भी कई प्लेसहोल्डर शामिल हैं: धन्यवाद
500 एमबी अनंत नहीं है। यह डिफ़ॉल्ट मान से बहुत बड़ा तरीका है, लेकिन फिर भी, अनंत नहीं है। – Carlos2W
आप max_allowed_packet सीमा और
त्रुटि मारा जाएगा।
आप 65535 प्लेसहोल्डर्स को एक एसक्यूएल में डाल सकते हैं। इसलिए यदि आपके पास एक पंक्ति में दो कॉलम हैं, तो आप एक एसक्यूएल में 32767 पंक्तियां डाल सकते हैं।
- 1. MySQL 'insert' कथन
- 2. मैं MySQL में क्यों नहीं डाल सकता?
- 3. एकाधिक mysql INSERT कथन एक प्रश्न php
- 4. mysql डेटाबेस तालिका में कितनी पंक्तियां?
- 5. मैं एक सम्मिलन कथन का उपयोग कर ऑरैकल डेटाबेस में एकाधिक पंक्ति कैसे डाल सकता हूं?
- 6. MySQL LAST_INSERT_ID() एकाधिक रिकॉर्ड INSERT कथन
- 7. मैं एक MySQLi तैयार कथन के परिणामों को एक सहयोगी सरणी में कैसे डाल सकता हूं?
- 8. मैं कई पंक्तियों को एक MySQL तालिका में कैसे डाल सकता हूं और नई आईडी वापस कर सकता हूं?
- 9. मैं एक विशेष चरित्र कैसे डाल सकता हूं जैसे 'MySQL में?
- 10. क्या मैं एक INSERT कथन में उपनाम का उपयोग कर सकता हूं?
- 11. एक MySQL कथन
- 12. क्या मैं एक INSERT कथन के अंदर एक सबक्वायरी का उपयोग कर सकता हूं?
- 13. INSERT SELECT कथन
- 14. कितनी पंक्तियां हटा दी गईं?
- 15. क्या मैं एक MYSQL डीबी तालिका में एक छवि डाल सकता हूं?
- 16. मैं तालिका में पंक्ति कैसे डाल सकता हूं?
- 17. मैं तैयार कथन में बाध्य पैरामीटर के रूप में MySQL फ़ंक्शन कैसे पास कर सकता हूं?
- 18. अपाचे कैमल: क्या मैं सशर्त पसंद कथन के हिस्से में कई बयान डाल सकता हूं?
- 19. मैं तैयार कथन के साथ postgresql में टाइमज़ोन के साथ टाइमस्टैम्प कैसे डाल सकता हूं?
- 20. सशर्त mySQL कथन। यदि सही अद्यतन है, तो गलत INSERT
- 21. क्या मैं एक नल नल फ़ील्ड में एक खाली स्ट्रिंग डाल सकता हूं?
- 22. पीडीओ MySQL: एक क्वेरी में एकाधिक पंक्तियां डालें
- 23. MYSQL INSERT या अद्यतन अगर
- 24. मैं MySQL में एक डीईएससी इंडेक्स कैसे बना सकता हूं?
- 25. MySQL INSERT बनाम PHP file_put_contents
- 26. मैं एक डेटा कैसे डाल सकता हूं। ByteString.Internal.ByteString?
- 27. @@ INSERT कथन के बाद पहचान 0
- 28. INSERT कथन विदेशी कुंजी बाधा
- 29. एसक्यूएल: एकल SELECT कथन
- 30. MyISAM और InnoDB में एकल mysql कथन परमाणु हैं?
आपका उदाहरण एकाधिक सम्मिलित चलाने के लिए कर रहे हैं, और यह की अनेक पंक्तियों सम्मिलित करने के बारे प्रदर्शित नहीं करता है ** एक ** सम्मिलित बयान .. – Lukman
@Lukman: एक सम्मिलित करें क्वेरी डेटाबेस से टकराने के अनेक निवेशन में परिणाम कर सकते । यह सिर्फ एक बात है कि किसकी गिनती है। – Borealid
यह सच है कि, लेकिन आपका पहला उदाहरण एक लूप में क्वेरी चलाने के बारे में दिखाता है जिसमें प्रत्येक लूप एक INSERT कथन चला रहा है, और यह उस पंक्ति में शामिल होने वाले किसी भी INSERT कथन के बारे में कुछ भी नहीं कहता है। यह सिर्फ जोर का विषय है। – Lukman