دفق مجموعات كبيرة من النتائج باستخدام MySQL
عند التعامل مع جداول MySQL واسعة النطاق داخل تطبيق Spring، يمكن أن ينشأ OutOfMemoryException عندما يسعى السائق إلى تحميل الجدول بأكمله في الذاكرة. إعداد البيان.setFetchSize(Integer.MIN_VALUE); قد لا يكون كافيًا، لأن هذا يوفر فقط تلميحًا لبرنامج تشغيل JDBC.لتمكين دفق مجموعات النتائج في برنامج تشغيل MySQL JDBC، يلزم اتباع نهج أكثر شمولاً:إنشاء مثيل بيان:
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
تعيين الجلب الحجم:
stmt.setFetchSize(Integer.MIN_VALUE)؛stmt.setFetchSize(Integer.MIN_VALUE);
هذه الطريقة لها بعض المزايا تحذيرات:
يجب قراءة جميع الصفوف في مجموعة النتائج (أو إغلاق مجموعة النتائج) قبل إصدار أي استعلامات أخرى على الاتصال. سيؤدي الفشل في القيام بذلك إلى حدوث استثناءات.
لمزيد من الاستراتيجيات حول التعامل مع مجموعات النتائج الكبيرة، فكر في هذا السؤال ذي الصلة وإجابته: [رابط لسؤال مماثل].
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3