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

हाइबरनेट के साथ थोक डालें या अपडेट करें?

थोक संचालन में कई संभावित अड़चनें हैं। सबसे अच्छा तरीका इस बात पर निर्भर करता है कि आपका डेटा कैसा दिखता है। हाइबरनेट मैनुअल बैच प्रोसेसिंग पर अनुभाग।

कम से कम, सुनिश्चित करें कि आप निम्नलिखित पैटर्न का उपयोग कर रहे हैं (मैनुअल से कॉपी):

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
    if ( i % 20 == 0 ) { //20, same as the JDBC batch size
        //flush a batch of inserts and release memory:
        session.flush();
        session.clear();
    }
}

tx.commit();
session.close();

यदि आप एक फ्लैट फ़ाइल को एक बहुत ही जटिल ऑब्जेक्ट ग्राफ़ में मैप कर रहे हैं तो आपको अधिक रचनात्मक होना पड़ सकता है, लेकिन मूल सिद्धांत यह है कि आपको प्रत्येक फ्लश/प्रतिबद्धता के साथ डेटाबेस में डेटा के अच्छे आकार के हिस्सों को धक्का देने और टालने के बीच संतुलन खोजना होगा सत्र स्तर कैश के आकार का विस्फोट।

अंत में, यदि आपको अपने डेटा को सही ढंग से सम्मिलित करने के लिए किसी भी संग्रह या कैस्केडिंग को संभालने के लिए हाइबरनेट की आवश्यकता नहीं है, तो स्टेटलेससेशन



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लेन-देन, पंक्ति-स्तरीय लॉकिंग और विदेशी कुंजियों का समर्थन करता है

  2. MySQL IN क्वेरीज़ सबक्वेरी के साथ बहुत धीमी लेकिन स्पष्ट मानों के साथ तेज़ हैं

  3. MySQL में REGEX_REPLACE () फ़ंक्शन कैसे काम करता है

  4. सिम्फनी 2 में सिद्धांत 2:मैं कैसे देख सकता हूं कि कौन सी ऑब्जेक्ट-कॉल एक क्वेरी में ले जाती है?

  5. Django एकाधिक डेटाबेस फॉलबैक मास्टर के लिए अगर गुलाम नीचे है