Dans MySQL, la raison du verrouillage de la table est que lorsqu'un programme effectue l'opération d'insertion, de mise à jour ou de suppression sur la table mais ne l'a pas encore validé, un autre programme effectue également la même opération sur la même table, alors la ressource est occupée à ce moment. Exception, c'est-à-dire verrouiller la table.
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
Quelle est la raison de la table de verrouillage MySQL ?
Le verrouillage est un mécanisme permettant aux ordinateurs de coordonner plusieurs processus ou threads pour accéder simultanément à une certaine ressource.
Dans une base de données, en plus de la concurrence pour les ressources informatiques traditionnelles (telles que le CPU, la RAM, les E/S, etc.), les données sont également une ressource partagée par de nombreux utilisateurs.
Comment garantir la cohérence et l'efficacité de l'accès simultané aux données est un problème que toutes les bases de données doivent résoudre. Les conflits de verrouillage sont également un facteur important affectant les performances de l'accès simultané aux bases de données.
De ce point de vue, les verrous sont particulièrement importants et complexes pour les bases de données.
Raisons du verrouillage de la table
1. Le verrouillage de la table se produit lors de l'insertion, de la mise à jour et de la suppression
2. Le principe du verrouillage de la table est que la base de données utilise un mécanisme de blocage exclusif. verrouillé. Jusqu'à ce qu'une validation se produise, qu'une restauration se produise ou que l'utilisateur de la base de données quitte
Tout d'abord, le programme A effectue une insertion sur la tableA, et avant la validation, le programme B insère également la tableA. À ce moment, une exception d'occupation de ressource se produira, ce qui se produira. est un verrouillage de table.
Deuxièmement, le verrouillage de table se produit souvent en simultanéité plutôt qu'en parallélisme (en parallèle, lorsqu'un thread exploite la base de données, l'autre thread ne peut pas exploiter le principe d'allocation de la base de données, du processeur et des E/S)
3. Probabilité de verrouillage de la table:
Réduire le temps entre l'exécution des instructions insert, update et delete et commit.
Plus précisément, l'exécution par lots est remplacée par une exécution unique et la vitesse de non-exécution de SQL lui-même est optimisée. Si une exception se produit, les choses sont annulées.
Les exemples sont les suivants :
Utilisez la mise à jour
. Supposons que kid est un champ d'index et une valeur de la table table Non unique :
1) : Si kid a plusieurs enregistrements avec une valeur de 12, alors :
Mettez à jour le nom de l'ensemble de tables = 'feie' où kid = 12 # ; La table sera verrouillée
2) : Si kid a une valeur unique. Si l'enregistrement est 1, alors :
Mettre à jour l'ensemble de table name='feie' où kid=1 ; Assurez-vous que l'enregistrement est unique si l'enregistrement correspond. à la valeur de l'index n'est pas unique, la table sera verrouillée. Sinon, la ligne sera verrouillée.
Utilisez delete
S'il y a deux suppressions : kid1 et kid2 sont des champs d'index
1) : Déclaration 1 supprimée de la table où kid1=1 et kid2=2 ;
2) : Déclaration 2 supprimée de la table où kid1= 1 et kid2=3;
# Ces deux suppressions ne verrouilleront pas la table
1) : Déclaration 1 supprimée de la table où kid1=1 et kid2=2 ;
2) : Déclaration 2 supprimée de la table où kid1=1 ;
# Ces deux suppressions verrouilleront la table
Résumé : si la même table est supprimée, essayez de rendre les conditions de suppression uniformes, sinon elles s'affecteront mutuellement et entraîneront le verrouillage de la table
Apprentissage recommandé :
mysql Tutoriel vidéoCe 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!