Bonjour à vous tous et puis meilleurs voeux ,
une question que je me pose depuis quelques jours maintenant et à laquelle je n’arrive pas à répondre correctement.

Tout d’abord mon problème :
J’ai une base de donnée MySQL que plusieurs utilisateurs peuvent consulter et modifier.
Or, dans mon programme une modification requiert plusieurs requêtes SQL …
d’où: comment éviter qu’un deuxième utilisateur (ou plus) ait accès aux champs en cours de modification par le groupe de requêtes ?
En d’autres termes j’aimerais que les groupes de requêtes se succèdent et qu’elles ne se chevauchent pas
J’espère que je suis assez clair . Il me semble que cela concerne les accès concurrents à des champs.

Voici les quelques solutions que j’ai trouvées et qu’il va falloir que je creuse, mais je voudrais savoir si je prend la bonne voie :
- L’utilisation des transactions (SET TRANSACTION …) en verrouillant les tables concernées (LOCK TABLE …) avec le niveau ACCESS EXCLUSIVE.
Mais (sauf erreur de ma part) cette approche implique l’utilisation des tables innoDB qui sont moins performantes en termes d’accès que les myISAM, ainsi qu’un verrou sur la totalité de la table ce qui peut être gênant si les modifications ne concernent qu’une très petite partie de la table et que donc les autres utilisateurs ne peuvent pas intervenir sur le reste de celle-ci
- L’utilisation d’un SELECT … FOR UPDATE ; cette requête bloque bien que les lignes sollicitées mais ne concerne pas un groupe de requêtes.

Bref, je suis pour l’instant dans la recherche des meilleurs compromis pour ce type de problème. Il me semble que l'utilisation des LOCK TABLE (sans l'utilisation des TRANSACTIONS) et sur des tables utilisant le moteur myISAM est une voie intéressante ... mais j'en suis pas sûr.
Pourriez-vous svp me dire si je prend le bon train et me donner quelques informations bien distillées

Merci d’avance !