Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

5 सेकंड से कम समय में हाइबरनेट का उपयोग करके mysql में 100000 पंक्तियों को सम्मिलित करने की आवश्यकता है

सभी संभावित समाधानों का प्रयास करने के बाद, मुझे अंततः 5 सेकंड के भीतर 100,000 पंक्तियों को सम्मिलित करने का एक समाधान मिला!

मैंने कोशिश की:

1) हाइबरनेट/डेटाबेस के ऑटोइनक्रिमेंट/जेनरेटेड आईडी को एटॉमिकइंटर का उपयोग करके स्व-निर्मित आईडी द्वारा बदला गया

2) बैच_इन्सर्ट को बैच_साइज =50 के साथ सक्षम करना

3) हर 'बैच_साइज़' नंबर के बाद लगातार () कॉल्स के बाद फ्लशिंग कैशे

4) मल्टीथ्रेडिंग (यह प्रयास नहीं किया)

अंत में एक मूल बहु-सम्मिलित क्वेरी . का उपयोग करके जो काम किया गया वह था और persist() . का उपयोग करने के बजाय एक sql इंसर्ट क्वेरी में 1000 पंक्तियों को सम्मिलित करना प्रत्येक इकाई पर। 100,000 इकाइयों को सम्मिलित करने के लिए, मैं इस तरह की एक मूल क्वेरी बनाता हूं "INSERT into MyTable VALUES (x,x,x),(x,x,x).......(x,x,x)" [एक sql इंसर्ट क्वेरी में 1000 रो इंसर्ट]

अब 100,000 रिकॉर्ड डालने में लगभग 3 सेकंड लगते हैं! तो अड़चन ही ओआरएम थी! बल्क इंसर्ट के लिए, केवल एक चीज जो काम करती प्रतीत होती है, वह है नेटिव इंसर्ट क्वेश्चन!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सभी यूनिकोड वर्णों को स्वीकार करने के लिए कौन सा MySQL संयोजन सबसे अच्छा है?

  2. MYSQL डेटाबेस में सभी विदेशी कुंजियाँ छोड़ें

  3. Laravel 4 में रॉ SQL क्वेरीज़ से बचें

  4. SQL फिक्स्ड-वैल्यू IN () बनाम INNER जॉइन परफॉर्मेंस

  5. मारियाडीबी 10 में बड़े सूचकांक को कैसे सक्षम करें?