Maison base de données tutoriel mysql À propos de Mysql transactionnel

À propos de Mysql transactionnel

Oct 13, 2017 am 10:30 AM
mysql à propos

1》À quoi fait référence la transaction ?
     La transaction peut être considérée comme une unité de traitement de logique métier, qui est soit exécutée, soit non exécutée (Cohérence)
Il y a 3 000 yuans dans le compte A, le compte B est rapide à 2 000,
-A-500. -"B
Le compte A et le compte B c'est 5000 rapide
avant la mise en place et l'exécution des choses. Après, cette somme et cet état doivent être cohérents.
                                  conduit à travers dans dans dans 30 00 3000    sélectionnez sun() entre A B Somme
(4) Durabilité (Durabilité)
Durabilité garantie :
1> Avant transaction :
Le les données ont été écrites sur le disque avant la transaction. Que faire si elles doivent être retirées ? Données rappelées du disque ? Très lent ? Très douloureux ? ce qu'il faut faire?
2 & gt; combiné avec le transactionnaliste pour compléter le
Connectez-vous à la chose, il y a aussi un disque Alors quelle est la différence entre celui-ci et le fichier de données ?
              Différence : le journal des transactions génère des E/S séquentielles, tandis que le fichier de données du disque est une E/S aléatoire. Chaque opération du journal des transactions est écrite séquentiellement dans un bloc de stockage continu sur le disque, et notre fichier de données n'est pas le cas.
                                                                                                                                            E/S séquentielles                           Les données de la transaction sont réimplémentées dans des fichiers de données, de cette façon nous garantissons la persistance des données exploitées par les objets.

3》Le statut de la transaction.
                                       nous informe sur l'état de la transaction, qu'est-ce que la soumission partielle ?
est l'exécution de la transaction, une partie du disque a été écrite et l'autre est en cours d'exécution. La dernière instruction d'exécution est en cours d'écriture, mais n'a pas atteint l'objectif, appelée transactions échouées
(4. ) transactions suspendues
la suspension est appelée non-soumission, ou à mi-chemin, elle est terminée à l'avance, appelée suspension.
(5) Transaction soumise
Pour une transaction soumise saine, notre transaction doit exister dans l'un de ces cinq états. Une fois la transaction soumise, elle ne peut pas être révoquée.

4》Concurrence et planification des transactions
  Concurrence des transactions :
    1>Améliorer le débit et l'utilisation des ressources
                                                         particulièrement Nous dans les transactions S'engager entre les transactions afin de réduire les effets de chacun Entre les effets, nous avons besoin pour isoler la transaction, que se passe-t-il si elle est isolée ? Cela dépend de la planification des transactions. Tout système de base de données lui-même a une telle complexité dans la planification des transactions. La méthode de planification intègre de nombreuses stratégies pour terminer la planification. De manière générale, afin de garantir l'isolement et l'atomicité des transactions, ils doivent utiliser la planification des transactions. terminé, il existe deux stratégies de planification courantes :
  

planification des transactions :
1 & gt; peut restaurer la planification
Généralement, lorsque les deux transactions sont planifiées entre elles, l'exécution croisée de deux transactions ne modifiera pas l'état d'une autre transaction. Appelez-le : planification de récupération

2 & gt; ajustement conjoint sans niveau
planification de récupération et étape par étape signifie qu'après la fin de la transaction, il n'y a aucun impact entre eux, en particulier dans les affaires, dans affaires, dans les affaires, dans les affaires Il sera toujours affecté lors de la restauration, et il le sera toujours lorsque la transaction sera annulée. Par conséquent, afin d'éviter l'impact lors de la restauration, vous pouvez également implémenter ce qu'on appelle : cascade-. planification gratuite.

5》Isolement des transactions
Nous connaissons la planification des transactions. Une transaction peut impliquer plusieurs opérations. Ces opérations peuvent être exécutées de manière transversale. L'existence de la planification des transactions consiste à mieux planifier l'ordre afin que celles-ci soient exécutées de manière transversale. les exécutions croisées peuvent être interconnectées les unes aux autres. Cela n'aura pas d'impact excessif, donc afin de réduire davantage l'impact entre les transactions, nous avons ce que l'on appelle les niveaux d'isolement. Il existe quatre niveaux d'isolement pour les transactions. Quels quatre ?
1 & gt; Lecture de lecture non validée
Au niveau d'isolement, toutes les transactions peuvent voir les résultats d'exécution d'autres transactions non préparées. Dans quelle mesure le niveau de lecture de données non validées est-il également appelé : Lecture sale
2>. ;read commit read commit
Le niveau d'isolement par défaut de la plupart des bases de données (mais le niveau par défaut de Mysql n'est pas celui-ci) ), qui satisfait à la simple définition de l'isolement : une transaction ne peut voir que les modifications apportées par les transactions qui ont déjà été validées ; Lorsque plusieurs instances lisent des données simultanément, elles verront les mêmes lignes de données. Cependant, en théorie, cela conduit à un autre problème : la lecture fantôme (lecture fantôme fait référence à la lecture d'une certaine plage en tant qu'utilisateur). la ligne de données est dans cette plage, une autre transaction insère une nouvelle ligne dans cette plage. Lorsque l'utilisateur lit la ligne de données dans cette plage, il trouvera une nouvelle "ligne fantôme"
. Le mécanisme de contrôle de concurrence (MVCC) résout ce problème.

4>Sérialisable

Il s'agit du mécanisme d'isolation de plus haut niveau. Il résout le problème de lecture fantôme en forçant les transactions à être triées afin que leurs étapes puissent entrer en conflit les unes avec les autres : il s'agit d'un verrou partagé. est ajouté à chaque ligne de données lues. À ce niveau, cela peut entraîner un grand nombre de délais d'attente et une concurrence de verrouillage est mise en œuvre, et notre technologie de contrôle simultané

en temps réel dépend de plusieurs technologies :
( 1) Verrouiller. Lire le verrou, écrire les verrous, monopoliser les verrous, partager les verrous
(2). Horodatage, vous devez enregistrer l'heure de début et l'heure d'exécution de chaque transaction
(3). isolement

extension supplémentaire :
état de famine (faim) : Lorsqu'une transaction est appliquée pour un type de verrouillage, afin d'obtenir un contrôle de concurrence, elle est prête à avoir besoin ce verrou, mais en raison du résultat de la planification de la transaction, il n'a pas pu obtenir le verrou. De plus, il existe un autre type de verrou appelé : deadlock

6》Démarrer la transaction et annulation

De manière générale, l'opération de démarrage d'une transaction : Annulation de la transaction
     > 3 & gt; > 6.1 Affaires Rolling Opération réelle :
1 & GT ; Démarrer une transaction
Démarrer la transaction
2 & GT ; Supprimer les informations dans l'une des tables des étudiants
Supprimer de l'étudiant où num='4 '
3>Comment effectuer une récupération de données ? Annulation des transactions. Je l'ai deviné.
                                 restauration ;
                                                                                                            sélectionner * parmi les étudiants ;

3>Soumission de la transaction
4 & gt; essayez de revenir en arrière
restauration
5 & gt;
                                                                                                                                                select * from student ; , je l'ai implémenté dans l'article 80. À ce moment-là, j'ai trouvé que le 75e était erroné et que l'exécution était incorrecte. Dois-je annuler les 80 premiers ? ? Le rôle des points de sauvegarde apparaît. Par exemple : J'enregistre toutes les 10 opérations : ​ ​ ​ ​ ​ ​ ​ 1> Transaction
                                                                                                                                       ; Enregistrer un point de transaction
     savepoint yya 3 & gt; Tables des étudiants

Supprimer de l'étudiant où nom = 'ximenchuiniu'

Point de sauvegarde yyb
4 & gt; Table "Niu Er" Les informations SUPPRIMER de l'étudiant où nom = 'niuer'
Point de sauvegarde yyb
5 & gt; D'accord, commencez la restauration
Si vous souhaitez restaurer Ximen Blowing Snow
Rollback To YYA. Quel est le point de sauvegarde, oui ?
6 & gt; voyez si vous avez repris le succès
SELECT * De l'étudiant

6.3 Soumission automatique des transactions
1>Requête de la soumission automatique des transactions mysql
sélectionnez @@autocommit;
sélectionnez @@ autocommit;
                                                                                                  ----+
                                                     | 1 1 1 1 |
------+ 1 ligne dans l'ensemble (0,00 SEC)

2 & GT ; Modifier mysql pour soumettre automatiquement
Set AutoCommit = 0


3 & GT ; Test de vérification
                                                                                                                                                                                                                                        Supprimer de l'élève où name='ximenchuniu'
                     restauration ; Et nous n’avons pas explicitement lancé de transaction ? Les transactions prennent en charge la restauration des instructions DML. DDL est une validation de test cachée, elle n'est donc malheureusement pas prise en charge.

Vérifiez que la lecture n'est pas validée :
Interrogez le niveau d'isolement, sélectionnez @@tx_isolation;

Modifiez le niveau d'isolement défini tx_isolation='read_uncommittd ';

Un mysql, ouvrez deux fenêtres, et démarrer une transaction transversale
Fenêtre un et fenêtre deux opérations courantes :
1.select @@tx_isolation;
2.set tx_isolation='read_uncommittd ';

Opération fenêtre 1 :
​​​​​1.start transaction; Démarrer une transaction croisée
          2.mettre à jour l'ensemble des étudiants age='70' où d_id='1010';

Opération Windows 2
        1.start transaction ;Démarrer une transaction croisée 2.Sélectionner * de StudentVous pouvez voir que la fenêtre 1 est remplacée par 70, la transaction de fenêtre n'est pas soumise et la fenêtre 2 est vue par 2. Deux fenêtres, les deux parties démarrent de manière croisée. une transaction
Opérations courantes de la fenêtre 1 et de la fenêtre 2 :
1.select @@tx_isolation;
2.set tx_isolation='read_committd ';

opération de la fenêtre 1 :

1 .start transaction; démarrer une transaction croisée
2.update student set age='70'where d_id='1010';
3.commit Uniquement soumis ici, dans 2 La troisième étape de la fenêtre verra le données soumises à nouveau

Opération de la fenêtre 2
1. démarrer la transaction ; démarrer une transaction croisée
2.Sélectionner * de l'étudiant ; Données mises à jour
3.sélectionner * de l'étudiant Seulement après le A ; la fenêtre a exécuté 3 étapes de soumission, pouvez-vous voir les données mises à jour pour éviter les lectures sales                                  

La vérification peut être lue
Un MySQL, ouvrez deux fenêtres et les deux parties traversent la transaction. L'instruction de requête le même jour obtient un nombre différent d'enregistrements, appelé lecture fantôme

. Opérations courantes de la fenêtre 1 et de la fenêtre 2 :
1.select @@tx_isolation;
2.set tx_isolation='repeatable-read ';

Opération de la fenêtre 1
1.start transaction; Démarrer une transaction croisée
2.mettre à jour l'ensemble étudiant age='60' où num='10';
3.commit ;

Opération fenêtre 2
1.démarrer la transaction ; transaction croisée
2.select * from student; Les données mises à jour de la fenêtre 1 ne sont pas vues
3.select * from student ; 1commit;Toujours pas voir les données mises à jour dans la fenêtre 1
Deux fenêtres, les deux parties démarrer une transaction de manière croisée
Opérations courantes de la fenêtre 1 et de la fenêtre 2 :
1.select @@tx_isolation;

2.set tx_isolation='serializing';


Opération de la fenêtre 1
1.start transaction ; démarrer une transaction croisée
2.update student set age='60' où num='10' ; Il ne peut être exécuté qu'après que Windows 2 ait soumis l'opération !
Opération de la fenêtre 2
1.start Transaction ; Démarrer une transaction croisée
2.Soumettre ici, la mise à jour de la 1 fenêtre peut être exécutée avec succès. C'est sérialisable !
Raison :
Lorsque deux transactions sont exécutées de manière croisée pour modifier les mêmes données en même temps, une partie doit d'abord les soumettre. Sinon, la lecture et l’écriture se bloqueront.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Comment récupérer les données après que SQL supprime les lignes Comment récupérer les données après que SQL supprime les lignes Apr 09, 2025 pm 12:21 PM

La récupération des lignes supprimées directement de la base de données est généralement impossible à moins qu'il n'y ait un mécanisme de sauvegarde ou de retour en arrière. Point clé: Rollback de la transaction: Exécutez Rollback avant que la transaction ne s'engage à récupérer les données. Sauvegarde: la sauvegarde régulière de la base de données peut être utilisée pour restaurer rapidement les données. Instantané de la base de données: vous pouvez créer une copie en lecture seule de la base de données et restaurer les données après la suppression des données accidentellement. Utilisez la déclaration de suppression avec prudence: vérifiez soigneusement les conditions pour éviter la suppression accidentelle de données. Utilisez la clause WHERE: Spécifiez explicitement les données à supprimer. Utilisez l'environnement de test: testez avant d'effectuer une opération de suppression.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

See all articles