innodb_lock_wait_timeout augmentez le délai de
Je suis en utilisant la base de données MySQL et d'essayer de mettre à jour des enregistrements juste après l'insertion, alors je suis d'erreur suivant ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction
.
J'ai donc diminuer le délai d'attente par la requête suivante:-
set GLOBAL innodb_lock_wait_timeout=1
Donc ma question est:-
est-il ok pour le faire? Il va conduire à d'autres problèmes comme problème de performance etc.?
Merci pour votre aide.
OriginalL'auteur user3819192 | 2015-02-26
Vous devez vous connecter pour publier un commentaire.
Si c'est une application web et que vous êtes en essayant de s'accrocher à l'opération d'une page à l'autre, ne pas; cela ne fonctionnera pas.
Qu'entendez-vous par "juste après"? Si vous ne faites rien entre les deux états, de même qu'un délai d'attente de 1 seconde doit être assez grande.
Pour expliquer GLOBAL vs SESSION pour les VARIABLES: La valeur GLOBALE est utilisée pour initialiser la valeur de SESSION lors de votre connexion démarre. Après cela, vous pouvez modifier la valeur de SESSION d'influer sur ce que vous faites. Et la modification de la valeur GLOBALE n'a aucun effet sur votre actuel connexion.
Changer le délai d'attente de 1 est tout à fait sûr (une fois que vous comprenez GLOBAL vs SESSION). La seule chose qui va changer, c'est la fréquence d'obtention de cette erreur.
mysql> SET GLOBAL innodb_lock_wait_timeout = 1; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @@innodb_lock_wait_timeout; +----------------------------+ | @@innodb_lock_wait_timeout | +----------------------------+ | 50 | +----------------------------+ 1 row in set (0.00 sec)
Note
GLOBAL
contreSESSION
.OriginalL'auteur Rick James