Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menstrim Set Keputusan MySQL Besar pada Musim Bunga untuk Mengelakkan OutOfMemoryError?

Bagaimana untuk Menstrim Set Keputusan MySQL Besar pada Musim Bunga untuk Mengelakkan OutOfMemoryError?

DDD
Lepaskan: 2024-11-30 01:20:10
asal
632 orang telah melayarinya

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

Menstrim Set Hasil Besar dengan MySQL

Apabila berurusan dengan jadual MySQL yang luas dalam aplikasi Spring, OutOfMemoryException boleh timbul apabila pemandu berusaha untuk memuatkan keseluruhan jadual ke dalam ingatan. Menetapkan pernyataan.setFetchSize(Integer.MIN_VALUE); mungkin tidak mencukupi, kerana ini hanya memberikan petunjuk kepada pemacu JDBC.

Untuk mendayakan penstriman set hasil dalam pemacu MySQL JDBC, pendekatan yang lebih komprehensif diperlukan:

  1. Buat Penyata Contoh:

    stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
    Salin selepas log masuk
  2. Tetapkan Saiz Ambil:

    stmt.setFetchSize(Integer.MIN_VALUE);
    Salin selepas log masuk

Awas :

Kaedah ini ada tertentu kaveat:

  • Semua baris dalam set hasil mesti dibaca (atau set keputusan ditutup) sebelum mengeluarkan sebarang pertanyaan lanjut mengenai sambungan. Kegagalan berbuat demikian akan mengakibatkan pengecualian.
  • Dalam transaksi, kunci hanya dilepaskan setelah transaksi selesai, membayangkan penyata mesti menyelesaikan pelaksanaan terlebih dahulu.
  • Jika OutOfMemoryError berterusan, isu asas mungkin terletak pada penggunaan memori yang berlebihan dalam kod Java. Ini memerlukan pemprosesan data segera dan bukannya storan.

Wawasan Tambahan:

Untuk strategi lanjut tentang mengendalikan set hasil yang besar, pertimbangkan soalan berkaitan ini dan jawapannya: [pautan kepada soalan yang serupa].

Atas ialah kandungan terperinci Bagaimana untuk Menstrim Set Keputusan MySQL Besar pada Musim Bunga untuk Mengelakkan OutOfMemoryError?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan