Maison  >  Article  >  base de données  >  Résumé de quelques problèmes liés au traitement des transactions de base de données

Résumé de quelques problèmes liés au traitement des transactions de base de données

王林
王林original
2019-08-19 11:05:491629parcourir

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ées

4-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érents

4-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 concurrence

Ré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 stockage

Selon 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

mais le rollback du moteur de stockage non transactionnel affichera le message d'erreur de réponse, le spécifique les informations sont liées au moteur de stockage.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn