Maison >base de données >tutoriel mysql >Résumé de quelques problèmes liés au traitement des transactions de base de données
Quelques résumés sur le traitement des transactions MySQL :
1. Qu'est-ce qu'une transaction ?
Les transactions MySQL sont principalement utilisées pour traiter des données avec des opérations volumineuses et une grande complexité.
Par exemple, dans le système de gestion du personnel, si vous supprimez une personne, vous devez supprimer non seulement les informations de base de la personne, mais également les informations liées à la personne,
telles comme boîte aux lettres, articles, etc. Attendez, de cette façon, ces instructions d'opération de base de données constituent une transaction !
2. Conditions d'utilisation des transactions
Pour utiliser les transactions dans MySQL, il faut le support du moteur de stockage dans MySQL Actuellement, les moteurs de stockage intégrés dans MySQL. MySQL qui prend en charge les transactions inclut InnoDB
, NDB
cluster
,
Les moteurs de stockage tiers incluent PBXT
et XtrDB
.
3. caractéristiques des transactions
3-1 Atomicité
Une transaction doit être traitée comme une unité de travail minimale indivisible, et toutes les opérations de chaque transaction doivent soit. réussir ou échouer,
Il n'est jamais possible que certaines opérations échouent et que certaines opérations réussissent. C'est ce qu'on appelle le concept d'atomicité.
3-2. 🎜>
Cohérence Tout comme dans l'exemple ci-dessus, lorsqu'une exception se produit, les données sont toujours correctes, c'est-à-dire que lorsqu'une exécution de transaction échoue, les données ne seront pas affectées par. la situation anormale. Maintient toujours son exactitude.3-3. Isolement
Lorsqu'une transaction n'a pas été soumise, chaque transaction est isolée les unes des autres. .3-4. Durabilité
Lorsqu'une transaction est soumise, les modifications seront stockées pour toujours dans la base de données.4. . Niveau d'isolement des transactions
4-1. Lecture non validée
Modifications apportées aux données dans une transaction, même si sans soumission, cette modification est toujours visible. d'autres transactions. Dans ce cas, des lectures sales sont susceptibles de se produire, affectant l'intégrité des données4-2 Lecture validée
Lorsqu'une transaction démarre, seules les autres transactions qui ont été soumises peuvent être vues. Dans ce cas, des lectures non répétables sont susceptibles de se produire (les résultats de deux lectures sont différents).4- 3. Lecture répétable
Les résultats de la lecture des enregistrements plusieurs fois sont cohérents. La lecture répétable peut résoudre la situation de lecture non répétable ci-dessus. Mais il existe une telle situation, Lorsqu'une transaction lit des enregistrements dans un. certaine plage, une autre transaction insère une nouvelle donnée dans cette plage. Lorsque la transaction lit à nouveau les données, constate que les données sont plus volumineuses que la première lecture. Il y a un autre enregistrement récupéré. ce qu'on appelle la lecture fantôme. Les résultats des deux lectures sont incohérents4-4 Sérialisable
La série est comme Chaque file d'attente est la même et chaque transaction. est en file d'attente en attente d'exécution. Ce n'est qu'après la soumission de la transaction précédente que la transaction suivante peut être effectuée.Bien que cette situation puisse résoudre la lecture fantôme ci-dessus, l'ajout d'un verrou à chaque élément de données peut conduit facilement à un grand nombre de délais d'attente de verrouillage et à une concurrence de verrouillage n'est particulièrement pas adapté à certains scénarios commerciaux à forte concurrenceRésumé de l'isolement<.>Grâce aux exemples ci-dessus, nous pouvons facilement constater que les lectures sales et les lectures non répétables se concentrent sur la mise à jour des données, et que les lectures fantômes se concentrent sur l'insertion de données.
5, Méthodes de traitement des transactions pour plusieurs moteurs de stockageSelon les conditions d'utilisation des transactions ci-dessus, nous pouvons savoir que certains moteurs de stockage ne prennent pas en charge les transactions, par exemple, le
moteur de stockage ne prend pas en charge les transactions<.>Si un moteur de stockage transactionnel et un stockage non transactionnel sont utilisés dans une transaction, le commit peut se dérouler normalement, MyISAM
6. Comment utiliser les transactions
Les transactions dans MySQL sont implicitement activées, c'est-à-dire une instruction SQL. Lorsque l'instruction SQL est exécutée, la transaction est soumise. Lors de la démonstration, nous l'avons explicitement activée
7. Soumission automatique MySQL
Comme mentionné ci-dessus, les transactions dans. MySQL est activé implicitement, ce qui signifie que chacun de nos SQL est automatiquement soumis. Si vous devez le fermer, vous devez définir l'option
8. Définissez le niveau d'isolement du. transactionautocommit
set session transaction isolation level 隔离级别;
Ci-dessus sont quelques questions connexes sur le traitement des transactions de base de données préparées pour vous. Pour plus de questions connexes, veuillez visiter les articles pertinents sur le site Web chinois de PHP. Merci!
Vidéos recommandées sur la base de données :https://www.php.cn/course/list/51/type/2.html
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!