Rumah >pangkalan data >tutorial mysql >Bagaimanakah `rewriteBatchedStatements=true` Mengoptimumkan Prestasi JDBC dengan `max_allowed_packet` MySQL?
Mengoptimumkan Prestasi JDBC dengan MySQL: Peranan rewriteBatchedStatements=true
dan max_allowed_packet
Parameter JDBC rewriteBatchedStatements=true
meningkatkan kecekapan rangkaian dengan ketara dengan menggabungkan berbilang pernyataan SQL ke dalam satu penghantaran rangkaian. Pendekatan diperkemas ini meminimumkan overhed rangkaian, seperti yang digambarkan di bawah.
Contoh Kod:
<code class="language-java">try (Connection con = DriverManager.getConnection(myConnectionString, "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>
Kesan pada Trafik Rangkaian:
Tanpa rewriteBatchedStatements=true
: Setiap penyata INSERT dihantar secara individu. Contoh:
<code class="language-sql">INSERT INTO jdbc (`name`) VALUES ('Name 1'); INSERT INTO jdbc (`name`) VALUES ('Name 2');</code>
Dengan rewriteBatchedStatements=true
: Penyataan INSERT berbilang digabungkan menjadi satu paket. Contoh:
<code class="language-sql">INSERT INTO jdbc (`name`) VALUES ('Name 1'), ('Name 2');</code>
Interaksi dengan max_allowed_packet
:
Yang penting, JDBC menghormati tetapan max_allowed_packet
MySQL. Jika had ini rendah, JDBC membahagikan kelompok besar secara bijak kepada pernyataan INSERT berbilang baris yang lebih kecil, menghalang paket bersaiz besar dan memastikan integriti pertanyaan.
Ringkasan:
Tetapan rewriteBatchedStatements=true
mengoptimumkan prestasi JDBC dengan mengurangkan perjalanan pergi balik rangkaian. Pengendalian pintar max_allowed_packet
memastikan keserasian dan mengelakkan ralat yang disebabkan oleh melebihi had saiz paket MySQL. Ini menghasilkan interaksi pangkalan data yang lebih pantas dan cekap.
Atas ialah kandungan terperinci Bagaimanakah `rewriteBatchedStatements=true` Mengoptimumkan Prestasi JDBC dengan `max_allowed_packet` MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!