Maison >base de données >tutoriel mysql >INSERTs à une seule ligne ou à plusieurs lignes dans MySQL : lequel est le plus rapide ?

INSERTs à une seule ligne ou à plusieurs lignes dans MySQL : lequel est le plus rapide ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-15 07:13:12297parcourir

Single-row vs. Multi-row INSERTs in MySQL: Which is Faster?

La comparaison de la vitesse des INSERT à une seule ligne par rapport aux INSERT à plusieurs lignes

Lorsque l'on vise l'optimisation de l'insertion de bases de données, une question cruciale se pose : s'il faut utiliser plusieurs instructions INSERT à une seule ligne ou opter pour un seul INSERT à plusieurs lignes. Pour déterminer l'approche optimale, examinons l'analyse des performances et considérons la documentation MySQL pertinente.

Analyse des performances

Selon la documentation MySQL (https://dev. mysql.com/doc/refman/8.0/en/insert-optimization.html), le temps nécessaire à l'insertion d'une ligne est principalement influencé par les facteurs suivants, leurs proportions approximatives étant indiquées dans parenthèses :

  1. Connexion : (3)
  2. Envoi de la requête au serveur : (2)
  3. Requête d'analyse : (2)
  4. Insertion d'une ligne : (1 x taille de la ligne)
  5. Insertion d'index : (1 x nombre de index)
  6. Fermeture : (1)

INSERT à plusieurs rangées vs INSERT à une seule rangée

En analysant ces facteurs, il devient évident que l’utilisation d’une seule grande instruction INSERT à plusieurs lignes peut réduire considérablement la surcharge par rapport à l’utilisation de plusieurs INSERT à une seule ligne. Pour chaque INSERT sur une seule ligne, une surcharge de 7 (somme des étapes 1 à 3, 6) est encourue.

Par conséquent, la documentation MySQL recommande explicitement d'utiliser des instructions INSERT avec plusieurs listes VALUES pour insérer plusieurs lignes à la fois. , en particulier dans les cas où plusieurs lignes sont insérées simultanément à partir du même client. Cette approche est « considérablement plus rapide » et peut offrir des avantages substantiels en termes de performances.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn