यदि आप MySQL को सक्षम करते हैं JDBC विकल्प
useCursorFetch
, fetchSize वास्तव में ड्राइवर द्वारा सम्मानित किया जाएगा।
हालांकि, इस दृष्टिकोण का एक नुकसान है:यह सर्वर-साइड कर्सर का उपयोग करेगा, जो कि MySQL में अस्थायी तालिकाओं का उपयोग करके कार्यान्वित किया जाता है। इसका मतलब यह होगा कि सर्वर पर क्वेरी पूरी होने तक परिणाम नहीं आएंगे, और उस अतिरिक्त मेमोरी का उपयोग सर्वर-साइड किया जाएगा।
यदि आप केवल परिणाम स्ट्रीमिंग का उपयोग करना चाहते हैं और सटीक फ़ेच आकार की परवाह नहीं करते हैं, तो setFetchSize(Integer.MIN_VALUE)
का ओवरहेड उतना बुरा नहीं है जितना डॉक्स का अर्थ हो सकता है। यह वास्तव में संपूर्ण प्रतिक्रिया के क्लाइंट-साइड कैशिंग को अक्षम करता है और जैसे ही वे आते हैं आपको प्रतिक्रिया देता है; प्रति पंक्ति कोई राउंड-ट्रिप आवश्यक नहीं है।