मुझे MySQL डेटाबेस में प्रति सेकंड लगभग 5 बार के लिए बहुत सारे डेटा लिखना है। सबसे तेज़ तरीका क्या है: प्रत्येक 1/5 सेकेंड डालें या कतार बनाएं और प्रत्येक ~ 5 सेकंड में सभी संग्रहीत डेटा डालें? यदि दूसरा तरीका बेहतर है - क्या 1 पंक्तियों में 1 पंक्तियों का उपयोग करके 1 तालिका में डालना संभव है?डेटाबेस में सम्मिलन
उत्तर
सम्मिलन की आवृत्ति इसके बेहतर को ध्यान में रखते हुए दूसरे दृष्टिकोण के साथ जाना जो कतार में है और एक बार में जोड़ने से।
लेकिन आप इन स्थितियों पहले विचार करना चाहिए:
आपके सिस्टम रीयल टाइम है।? हां तो अधिकतम देरी क्या है जिसे आप बर्दाश्त कर सकते हैं (क्योंकि अगले प्रविष्टि के लिए ~ 5 सेकंड लगेंगे और डेटा जारी/उपलब्ध होगा)?
डेटा में आने के लिए गलत मूल्य/त्रुटियों की संभावना क्या है, जैसे कि एक डेटा गलत है, यदि क्वेरी विफल हो जाती है तो आप बाकी सभी को खो देंगे।
innodb_buffer_pool_instances
के साथ कई बफर पूल का उपयोग करना। यह कोर परमाणुओं की संख्या पर निर्भर कर सकता है। तालिका के Partitioning
का उपयोग करें।
आप सामूहिक रूप से XML
का उपयोग कर डेटा डाल सकते हैं।
आप कुछ इस तरह witho सभी डेटा के साथ एक डालने कर सकते हैं: प्रत्येक लेन-देन एक निश्चित मूल्य के साथ आता है
INSERT INTO table (field1, field2,... , fieldN)
VALUES
(value1_1', value1_2,... , value1_N),
(value2_1', value2_2,... , value2_N),
...
(valueM_1', valueM_2,... , valueM_N);
के रूप में, मैं कहना चाहता हूँ कि एक कर बहु लाइन हर कुछ सेकंड सम्मिलित बेहतर है । कुछ प्रणालियों के साथ हम काम पर उपयोग करते हैं, हम उन्हें एक ही बार में डालने से पहले सैकड़ों लाइनों को कैश करते हैं।
से MySQL documentation आप एक बहु लाइन इतनी तरह सम्मिलित कर सकते हैं:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
मेरा अनुभव है कि यह बैचों के साथ काम करने के लिए तेजी से होता है जब एक MySQL डेटाबेस में डेटा डालने है।
तो धीमी विकल्प को क्रियान्वित कर रहा है कई डालने वाली खोज:
INSERT INTO my_table VALUES (1, "a"); INSERT INTO my_table VALUES (2, "b");
तेजी विकल्प होगा:
INSERT INTO my_table VALUES (1, "a"), (2, "b");
- 1. मर्ज प्रतिकृति डेटाबेस में सम्मिलन बहुत धीमे हैं
- 2. सम्मिलन
- 3. सम्मिलन विसंगति
- 4. जावास्क्रिप्ट में सम्मिलन
- 5. एसक्यूएल अद्वितीय कुंजी सम्मिलन
- 6. बीटीआई सम्मिलन
- 7. सी ++ में संकलन-समय सम्मिलन?
- 8. बड़ी फ़ाइल में स्ट्रिंग सम्मिलन
- 9. रूबी हैश सम्मिलन आदेश
- 10. लिंक में पूर्ण बाहरी सम्मिलन कैसे करें?
- 11. std :: वेक्टर सम्मिलन
- 12. अनन्य मानों और सम्मिलन
- 13. माईस्क्ली सम्मिलन कथन
- 14. कोडिग्निटर बैच सम्मिलन प्रदर्शन
- 15. जावा सम्मिलन प्रश्न
- 16. पोस्टग्रेस सम्मिलन अनुकूलन
- 17. सम्मिलन इष्टतम है?
- 18. सम्मिलन क्रमबद्ध त्रुटि
- 19. अपवाद वीएस सम्मिलन
- 20. क्या FILTER_VALIDATE_EMAIL डेटाबेस में सम्मिलन के लिए एक स्ट्रिंग सुरक्षित बनाता है?
- 21. मैं एक सम्मिलन कथन का उपयोग कर ऑरैकल डेटाबेस में एकाधिक पंक्ति कैसे डाल सकता हूं?
- 22. गिट में सम्मिलन और विलोपन क्या हैं?
- 23. रूबी में सीखना सम्मिलन क्रमबद्ध करें
- 24. स्क्लाइट ट्रिगर्स में सशर्त सम्मिलन कथन
- 25. जगह फ़ाइल नाम/पथ सम्मिलन में Emacs
- 26. संपर्कों में सम्मिलन के लिए ब्रॉडकास्ट रिसीवर
- 27. विशिष्ट MySQL थोक सम्मिलन प्रदर्शन ट्यूनिंग
- 28. पंक्ति सम्मिलन आदेश इकाई ढांचा
- 29. अधिनियम सम्मिलन विकल्प व्यवस्थित करें
- 30. ओरेकल ट्रिगर एक सम्मिलन या
हाँ, प्रणाली वास्तविक समय है। डेटा ~ 100 बाइट डेटा के साथ एक साधारण बेस 64 है। – Ockonal
यदि ऐसा है तो मैं एकल प्रविष्टि के साथ, और डीएओ परत पर कनेक्शन पूलिंग के साथ जाऊंगा। क्योंकि आप आरटीएस में डेटा खोने के लिए भी बर्दाश्त नहीं कर सकते हैं, साथ ही समय भी महत्वपूर्ण है। उम्मीद है कि यह आपकी मदद की। :) –
मदद के लिए धन्यवाद;) – Ockonal