1. Quatre caractéristiques majeures des transactions
Atomicité : Une fois la transaction lancée, toutes les opérations sont soit terminées, soit non terminées, et il est impossible de stagner au milieu. Si une erreur se produit lors de l'exécution de la transaction, elle sera rétablie à l'état avant le début de la transaction et toutes les opérations se dérouleront comme si elles ne s'étaient pas produites.
Cohérence : les contraintes d'intégrité de la base de données ne sont pas violées avant et après le début et la fin de la transaction.
Isolement : une seule transaction est autorisée à demander les mêmes données en même temps, et les différentes transactions n'interfèrent pas les unes avec les autres.
Durabilité : une fois la transaction terminée, toutes les mises à jour de la base de données par la transaction seront enregistrées dans la base de données et ne pourront pas être annulées.
2. Problèmes de concurrence des transactions
Lecture sale : la transaction A lit les données mises à jour par la transaction B, puis B annule l'opération, puis A lit Les données sont données sales
Lecture non répétable : (La transaction A lit les mêmes données plusieurs fois, et la transaction B met à jour et valide les données lors des multiples lectures de la transaction A, ce qui entraîne la lecture de la transaction A plusieurs fois. Lors de la lecture du mêmes données, les résultats sont incohérents. ) (Point clé : modification des données)
Lecture fantôme : l'administrateur système A a modifié les notes de tous les élèves de la base de données des notes spécifiques aux notes ABCDE, mais l'administrateur système B a changé At cette fois, un enregistrement avec un score spécifique a été inséré. Lorsque l'administrateur système A a terminé la modification, il a constaté qu'il y avait encore un enregistrement qui n'avait pas été modifié. C'était comme une hallucination. (Point clé : ajout ou suppression de données)
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, et la lecture fantôme se concentre sur l'ajout ou la suppression. Pour résoudre le problème de lecture non répétable, il vous suffit de verrouiller les lignes qui remplissent les conditions. Pour résoudre le problème de lecture fantôme, vous devez verrouiller la table
3. niveau
Lecture non validée (READ UNCOMMITED) (Les données non validées peuvent être lues, lecture sale, ces données sont appelées données sales)
READ COMMITED (Les données validées peuvent être lues, non- lecture répétable)
Lecture répétable (RePEATABLE READ) Les données vues lors de l'exécution d'une transaction sont toujours cohérentes avec les données vues au démarrage de la transaction. Bien entendu, sous le niveau d’isolement de lecture reproductible, les modifications non validées sont également invisibles pour les autres transactions.
SÉRIALISABLE (les opérations de lecture acquerront implicitement des verrous partagés, ce qui peut assurer une exclusion mutuelle entre les différentes transactions, table de verrouillage, n'y pensez pas, les défauts sont également évidents, voir la table de verrouillage Vous comprendrez, efficacité problèmes)
Tutoriel recommandé : "Tutoriel MySQL"
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!