Rumah >pangkalan data >tutorial mysql >Bagaimanakah `rewriteBatchedStatements=true` Mengoptimumkan Prestasi Rangkaian JDBC MySQL?
Mengoptimumkan Prestasi Rangkaian JDBC MySQL dengan rewriteBatchedStatements=true
Pemacu JDBC (Java Database Connectivity) menawarkan peningkatan prestasi yang besar melalui parameter rewriteBatchedStatements=true
. Tetapan ini membolehkan pemacu menyatukan berbilang pertanyaan pangkalan data ke dalam satu penghantaran rangkaian, secara mendadak mengurangkan overhed rangkaian.
MySQL max_allowed_packet
menentukan saiz maksimum paket masuk. Sekiranya paket pertanyaan berkumpulan melebihi had ini, ralat boleh berlaku. Walau bagaimanapun, pemandu JDBC bijak mengendalikan perkara ini: ia secara dinamik menentukan max_allowed_packet
dan melaraskan strategi kelompoknya untuk mengelak daripada melebihi had.
Untuk mengesahkan tingkah laku ini, aktifkan log umum MySQL dan pantau sambungan JDBC. Anda akan melihat Connector/J mendapatkan max_allowed_packet
dan menyesuaikan batchingnya dengan sewajarnya.
Di bawah ialah contoh kod yang menggambarkan rewriteBatchedStatements=true
dalam tindakan:
<code class="language-java">String connectionString = "jdbc:mysql://localhost:3307/mydb?" + "useUnicode=true&characterEncoding=UTF-8" + "&rewriteBatchedStatements=true"; try (Connection con = DriverManager.getConnection(connectionString, "root", "whatever")) { try (PreparedStatement ps = con.prepareStatement("INSERT INTO jdbc (`name`) VALUES (?)")) { for (int i = 1; i <= 1000; i++) { ps.setString(1, "Name" + i); ps.addBatch(); } ps.executeBatch(); } }</code>
Tanpa rewriteBatchedStatements=true
, kod ini akan menghantar pernyataan INSERT
individu. Dengan didayakan, JDBC menggabungkannya dengan cekap ke dalam satu berbilang baris INSERT
, dengan ketara meminimumkan trafik rangkaian.
Oleh itu, JDBC memastikan pengendalian pertanyaan kelompok yang cekap dalam MySQL, menawarkan peningkatan prestasi dan keserasian yang lancar tanpa memerlukan campur tangan pembangun manual. Pemandu menguruskan saiz kelompok dengan bijak berdasarkan tetapan max_allowed_packet
pelayan.
Atas ialah kandungan terperinci Bagaimanakah `rewriteBatchedStatements=true` Mengoptimumkan Prestasi Rangkaian JDBC MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!