"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आउटऑफमेमरी एरर से बचने के लिए स्प्रिंग में बड़े MySQL परिणाम सेट को कैसे स्ट्रीम करें?

आउटऑफमेमरी एरर से बचने के लिए स्प्रिंग में बड़े MySQL परिणाम सेट को कैसे स्ट्रीम करें?

2024-12-22 को प्रकाशित
ब्राउज़ करें:105

How to Stream Large MySQL Result Sets in Spring to Avoid OutOfMemoryError?

MySQL के साथ बड़े परिणाम सेट को स्ट्रीम करना

स्प्रिंग एप्लिकेशन के भीतर व्यापक MySQL तालिकाओं के साथ काम करते समय, ड्राइवर के प्रयास के रूप में एक आउटऑफमेमरीएक्सेप्शन उत्पन्न हो सकता है संपूर्ण तालिका को मेमोरी में लोड करें. स्टेटमेंट सेट करना.setFetchSize(Integer.MIN_VALUE); पर्याप्त नहीं हो सकता है, क्योंकि यह केवल JDBC ड्राइवर को एक संकेत प्रदान करता है।

MySQL JDBC ड्राइवर में परिणाम सेट की स्ट्रीमिंग को सक्षम करने के लिए, एक अधिक व्यापक दृष्टिकोण की आवश्यकता है:

  1. एक स्टेटमेंट इंस्टेंस बनाएं:

    stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
  2. फ़ेच सेट करें आकार:

    stmt.setFetchSize(Integer.MIN_VALUE);

सावधानियां:

इस विधि में कुछ निश्चित हैं चेतावनी:

  • परिणाम सेट की सभी पंक्तियों को पढ़ा जाना चाहिए (या कनेक्शन पर कोई और प्रश्न जारी करने से पहले परिणाम सेट बंद हो गया)। ऐसा करने में विफलता के परिणामस्वरूप अपवाद होंगे। जावा कोड के भीतर अत्यधिक मेमोरी उपयोग में निहित हो सकता है। इसके लिए भंडारण के बजाय तत्काल डेटा प्रोसेसिंग की आवश्यकता होती है। [समान प्रश्न का लिंक]।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3