Maison  >  Article  >  base de données  >  Comment résoudre le blocage de MySQL ?

Comment résoudre le blocage de MySQL ?

青灯夜游
青灯夜游original
2019-05-22 18:36:2412154parcourir

Solution de blocage MySQL : 1. Attendez l'expiration du délai (innodb_lock_wait_timeout=50s), annulez automatiquement la transaction ; 2. Lancez la détection de blocage, annulez activement une transaction et laissez les autres transactions continuer à s'exécuter ( innodb_deadlock_detect=on ).

Comment résoudre le blocage de MySQL ?

MySQL dispose de deux méthodes de gestion des blocages :

● Attendre l'expiration du délai (innodb_lock_wait_timeout=50s), annuler automatiquement les transactions .

● Initier la détection des blocages, annuler de manière proactive une transaction et permettre aux autres transactions de continuer à s'exécuter (innodb_deadlock_detect=on).

Pour des raisons de performances, la détection des interblocages est généralement utilisée pour gérer les interblocages.

Détection des blocages

Le principe de la détection des blocages est de construire un graphe orienté avec des transactions comme sommets et des verrous comme arêtes, et de déterminer s'il existe un cycle dans le graphe orienté s'il y a un. cycle, il y a une impasse.

Rollback

Après avoir détecté un blocage, sélectionnez la transaction avec le plus petit nombre de lignes insérées, mises à jour ou supprimées à restaurer, en fonction du champ trx_weight de la table INFORMATION_SCHEMA.INNODB_TRX.

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