Définir le «délai d'attente de verrouillage» dans MySQL

13

Où dois-je définir la durée maximale pendant laquelle une requête attendra un verrouillage dans MySQL 5.0.68 avant de se terminer?

Gaius
la source

Réponses:

6

Les autres paramètres de délai d'attente qui sont généraux (pas seulement pour les verrous, car innodb_lock_wait_timeout ne s'applique qu'aux verrous de ligne InnoDB) seraient wait_timeout et interactive_timeout (tous deux par défaut à 28 800)

Derek Downey
la source
1

Si vous atteignez le délai d'attente InnoDB de 50 secondes, vous avez une application mal conçue!

Cette temporisation existe pour attraper des choses coquines qui ne peuvent pas être capturées autrement.

Rick James
la source
1
Ou en raison d'erreurs, j'ai un serveur mysql et mariadb extrêmement occupé et les blocages sont une chose normale qui n'arrive pas tout le temps. Même si "impossible". Si vous avez cent millions de lignes et dix mille commandes sql par seconde, vous trouverez toutes sortes de bogues dans mysql (plantages) ainsi que des blocages de toutes sortes.
John
1
Cela dépend de la situation. À partir des documents mysql: vous pouvez diminuer cette valeur pour les applications hautement interactives ou les systèmes OLTP, pour afficher rapidement les commentaires des utilisateurs ou mettre la mise à jour dans une file d'attente pour un traitement ultérieur. Vous pouvez augmenter cette valeur pour les opérations dorsales de longue durée, telles qu'une étape de transformation dans un entrepôt de données qui attend la fin d'autres opérations d'insertion ou de mise à jour volumineuses.
g4b0
Vérifier que l'application est mal construite ... oui!
Noah Duncan