Je reçois l'erreur suivante assez souvent lors de l'exécution d'une certaine requête dans ma base de données (toutes les tables utilisent le moteur de stockage InnoDB): "Deadlock trouvé en essayant de verrouiller, essayez de redémarrer la transaction"Deadlock trouvé dans MySQL (InnoDB)
la requête est DELETE FROM sessions WHERE userid != 0 AND lastactivity < 1289594761 AND admin = 1 AND userid NOT IN (SELECT userid FROM users WHERE (userflags & 1048576))
les erreurs ont commencé à se produire lorsque j'ai ajouté le PAS en partie à ma clause WHERE. Pourquoi cela pose-t-il des problèmes et que puis-je faire pour éviter cela?
Alors que vous pourriez être en mesure de minimiser les blocages, voir http://stackoverflow.com/questions/2596005/working-around-mysql-error-deadlock-found-when-trying-to -get-lock-try-restartin – nos