Maison >Java >javaDidacticiel >Comment JDBC gère-t-il les instructions par lots avec la limite max_allowed_packet de MySQL ?
La configuration rewriteBatchedStatements de JDBC optimise la surcharge du réseau en regroupant plusieurs requêtes dans un seul paquet. Cela soulève des inquiétudes concernant la limite max_allowed_packet du serveur MySQL.
Réduire la surcharge du réseau avec RewriteBatchedStatements
Lorsque rewriteBatchedStatements est défini sur true, JDBC combine les requêtes en un seul paquet réseau. Par exemple :
<code class="java">ps.setString(1, "..."); ps.addBatch(); ps.setString(1, "..."); ps.addBatch(); ps.executeBatch();</code>
sans rewriteBatchedStatements :
<code class="sql">INSERT INTO jdbc (`name`) VALUES ('Line 1: ...') INSERT INTO jdbc (`name`) VALUES ('Line 2: ...')</code>
avec rewriteBatchedStatements :
<code class="sql">INSERT INTO jdbc (`name`) VALUES ('Line 1: ...'),('Line 2: ...')</code>
Conscience de JDBC concernant max_allowed_packet
Oui, JDBC connaît la valeur max_allowed_packet et ajuste la taille des requêtes combinées en conséquence.
Exemple
En activant le journal général de MySQL, vous pouvez observer JDBC inspection de max_allowed_packet lors de la connexion. De plus, si vous définissez max_allowed_packet sur une valeur faible, JDBC divisera les requêtes par lots en paquets plus petits si la taille combinée dépasse la limite.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!