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

मल्टीथ्रेडेड वातावरण में लेनदेन को संभालना

मैं कुछ मध्यवर्ती डेटा संरचना में एकाधिक धागे से सभी SQL क्रियाओं को कतारबद्ध करने का सुझाव दूंगा, और फिर एक थ्रेड से डेटाबेस में डाल दूंगा। थ्रेड सुरक्षित मध्यवर्ती संरचनाएं जैसे ConcurrentHashMap . होना संभव है , ConcurrentLinkedQueue या आप इसके साथ काम करते समय बस सिंक्रनाइज़ कर सकते हैं।

इस तरह आपको पहले से ट्रांजैक्शन शुरू करने की भी जरूरत नहीं है। लंबित डेटा कम सुरक्षित हो सकता है, लेकिन मुझे लगता है कि वे डेटाबेस में अधिक सुरक्षित नहीं हैं, जबकि लेनदेन अभी तक प्रतिबद्ध नहीं है।

बेशक, यह तभी काम कर सकता है जब आपके पास select . न हो एक ही लेन-देन से अनकमिटेड ट्रांजेक्शन डेटा चुनने वाले स्टेटमेंट। इस तरह के प्रश्नों से छुटकारा पाने के लिए किसी न किसी तरीके से नए सिरे से डिजाइन की आवश्यकता हो सकती है।

CountDownLatch का उपयोग करें यह पता लगाने के लिए कि सभी डेटा कब तैयार हैं और डेटाबेस लेखन थ्रेड को अपनी कार्रवाई शुरू करनी चाहिए। यदि कभी नहीं होता है, तो डेटाबेस लेखन थ्रेड के लिए रिएक्टर पैटर्न का उपयोग करें।



  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 एक कॉलम DISTINCT का चयन करें, इसी अन्य कॉलम के साथ

  2. एक ट्रिगर या MySQL में संग्रहीत प्रक्रिया से एक आरईएसटी एपीआई को कॉल करना?

  3. निकट '?' का उपयोग करने के लिए सही वाक्यविन्यास

  4. JDBC हमेशा MySQL तालिका की अंतिम पंक्ति का परीक्षण करता है?

  5. कैसे mysql अपडेट सेल्फ टेबल काम करता है