Pengoptimuman JDBC dengan rewriteBatchedStatements
Parameter rewriteBatchedStatements dalam JDBC membolehkan komunikasi rangkaian yang cekap dengan menggabungkan berbilang pertanyaan ke dalam satu paket. Ini boleh mengurangkan dengan ketara overhed yang dikaitkan dengan rangkaian I/O.
Cara Pengumpulan Berfungsi
Dengan rewriteBatchedStatements ditetapkan kepada benar, pemacu JDBC akan mengumpulkan berbilang penyata secara automatik ke dalam satu paket. Ini amat berguna untuk menghantar pertanyaan sisipan atau kemas kini, di mana data selalunya berulang dan boleh dibungkus bersama dengan cekap.
Sebagai contoh, pertimbangkan kod berikut:
<code class="java">try (Connection con = DriverManager.getConnection(myConnectionString, "root", "whatever")) { try (PreparedStatement ps = con.prepareStatement("INSERT INTO jdbc (`name`) VALUES (?)")) { for (int i = 1; i <= 5; i++) { ps.setString(1, "Lorem ipsum dolor sit amet..."); ps.addBatch(); } ps.executeBatch(); } }</code>
Tanpa batching, pemandu akan menghantar lima pernyataan INSERT individu ke pangkalan data. Walau bagaimanapun, dengan rewriteBatchedStatements didayakan, ia mungkin menghantar satu penyata INSERT berbilang baris sebaliknya:
<code class="sql">INSERT INTO jdbc (`name`) VALUES ('Lorem ipsum dolor sit amet...'),('Lorem ipsum dolor sit amet...')</code>
Mengelakkan Isu max_allowed_packet
Pembolehubah max_allowed_packet dalam set MySQL saiz untuk paket rangkaian. Jika paket melebihi saiz ini, pertanyaan mungkin tidak berjaya dilaksanakan. Pemacu JDBC menyedari had ini dan secara automatik akan membahagikan paket besar kepada yang lebih kecil jika perlu.
Oleh itu, pembangun biasanya tidak perlu bimbang tentang paket_maksimum_dibenarkan, kerana pemandu akan menguruskannya secara automatik. Walau bagaimanapun, jika saiz paket yang sangat besar diperlukan, pembangun mungkin perlu melaraskan nilai paket_maks_allowed pada pelayan MySQL untuk menampungnya.
Atas ialah kandungan terperinci Bagaimanakah `rewriteBatchedStatements` dalam JDBC boleh Meningkatkan Kecekapan Rangkaian dan Mengendalikan Saiz Paket Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!