Optimisation MySQL : combiner UPDATE et SELECT en un seul passage
Dans un scénario multi-applications typique où les tâches sont réparties entre les applications de travail, une solution courante pour acquérir la propriété d'une tâche implique deux opérations MySQL distinctes : une UPDATE pour marquer la tâche comme possédée (en définissant un identifiant globalement unique) et une SELECT pour récupérer les paramètres de la tâche. Cette approche peut introduire des goulots d'étranglement potentiels en termes de performances, en particulier avec un volume élevé de requêtes simultanées.
Pouvons-nous améliorer l'efficacité en combinant ces deux opérations en un seul passage vers le serveur MySQL ?
Réponse :
Oui, nous pouvons obtenir l'effet souhaité en un seul appel au serveur en utilisant l'approche suivante :
<code class="sql">UPDATE `lastid` SET `idnum` = (SELECT `id` FROM `history` ORDER BY `id` DESC LIMIT 1);</code>
Cette requête effectue à la fois la mise à jour et les opérations SELECT dans une seule transaction atomique. Voici comment cela fonctionne :
En combinant les opérations UPDATE et SELECT, nous éliminons le besoin d'une requête SELECT distincte et réduisons les allers-retours sur le réseau. Cette optimisation peut améliorer considérablement les performances, en particulier dans les scénarios à forte concurrence.
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!