Bonjour,
Je constate au niveau du serveur MySQL de l'application métier de mon entreprise que parfois, certaines requêtes assez lourdes bloquent l'exécution des autres requêtes. J'en avais donc conclu que MySQL exécutait peut-être les requêtes les unes après les autres selon le principe de la file d'attente.
En faisant des tests pour le vérifier, je me rends compte que ce n'est pas le cas : si je lance une requête A particulièrement lourde depuis une connexion A et que je lance ensuite une requête B moins lourde (mais portant sur les mêmes tables) depuis une connexion B, la requête B revient en premier. Preuve qu'elle n'a a priori pas été bloquée par la requête A.
Du coup, je me pose la question suivante : en considérant qu'aucune instruction LOCK TABLES n'est explicitement exécutée, qu'est-ce qui peut expliquer que parfois, une requête exécutée depuis une connexion donnée bloque l'exécution de requêtes lancées depuis une autre connexion ?
PS : je n'ai malheureusement pas le SQL des requêtes en question (celles qui ont tendance à bloquer les autres)
Merci d'avance pour vos lumières.
Partager