Maison  >  Article  >  développement back-end  >  qu'est-ce qu'une transaction php

qu'est-ce qu'une transaction php

王林
王林original
2019-09-20 11:54:304413parcourir

qu'est-ce qu'une transaction php

Quatre fonctionnalités majeures des transactions PHP

Une transaction est un ensemble de requêtes SQL atomiques, ou une unité de travail indépendante.

Atomicité :

Une transaction est l'unité logique de travail de la base de données, et ses modifications dans la base de données sont soit toutes exécutées, soit aucune.

Cohérence :

L'état de la base de données satisfait à toutes les contraintes d'intégrité avant et après la transaction.

Isolement :

Les transactions exécutées simultanément sont isolées et l'une n'affecte pas l'autre. S'il y a deux transactions exécutées en même temps et remplissant la même fonction, l'isolation des transactions garantira que chaque transaction du système pense que seule cette transaction utilise le système. Cette propriété est parfois appelée sérialisation. Pour éviter toute confusion entre les opérations de transaction, les requêtes doivent être sérialisées ou désérialisées afin qu'il n'y ait qu'une seule requête pour les mêmes données à la fois.

En définissant le niveau d'isolement de la base de données, différents effets d'isolement peuvent être obtenus.

Durabilité :

Une fois la transaction terminée, les modifications apportées à la base de données par la transaction seront conservées dans la base de données et ne seront pas annulées.

Problèmes de concurrence dans les transactions PHP

1. Lecture sale

La transaction A lit les données mises à jour par la transaction B, puis B annule l'opération et les données lues par A sont des données sales.

2. Lecture non répétable

La transaction A lit les mêmes données plusieurs fois et la transaction B met à jour les données lors des multiples lectures de la transaction A. Et validez, ce qui entraîne des résultats incohérents lorsque la transaction A lit les mêmes données plusieurs fois.

3. Lecture fantôme

L'administrateur système A a modifié les scores de tous les élèves de la base de données des scores spécifiques aux notes ABCDE, mais l'administrateur système B a modifié les scores à ce stade. fois Un enregistrement avec un score spécifique a été inséré. Lorsque l'administrateur système A a terminé la modification, il a découvert qu'il y avait encore un autre enregistrement qui n'avait pas été modifié. C'était comme une hallucination.

Résumé : La lecture non répétable et la lecture fantôme se confondent facilement. La lecture non répétable se concentre sur la modification, tandis que la lecture fantôme se concentre sur l'ajout ou la suppression. Pour résoudre le problème de la lecture non répétable, il vous suffit de verrouiller les lignes qui remplissent les conditions, et pour résoudre le problème de la lecture fantôme, vous devez verrouiller la table.

Tutoriel recommandé : Tutoriel vidéo PHP

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