Maison > base de données > tutoriel mysql > le corps du texte

Comment modifier le niveau d'isolement de MySQL

藏色散人
Libérer: 2021-12-29 14:09:21
original
5420 Les gens l'ont consulté

Comment modifier le niveau d'isolement mysql : 1. Recherchez "skip-external-locking" ; 2. Ajoutez le contenu de "transaction-isolation = READ-COMMITTED" ;

Comment modifier le niveau d'isolement de MySQL

L'environnement d'exploitation de cet article : système Windows 7, mysql version 5.5, ordinateur Dell G3.

Comment modifier le niveau d'isolement de mysql ?

Niveau d'isolement des transactions MySQL et méthode de modification

Modifier le niveau d'isolement des transactions Mysql :

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Copier après la connexion

Ajouter (lire le contenu de la soumission) après la position :

lc-messages-dir = /usr/share/mysql
skip-external-locking
Copier après la connexion

 :

transaction-isolation = READ-COMMITTED
Copier après la connexion

Enregistrez et redémarrez le service MySQL :

sudo service mysql restart
Copier après la connexion

Les 4 niveaux d'isolement de SQL

Read Uncommit (Lire le contenu non validé)

À ce niveau d'isolement, toutes les transactions peuvent voir les résultats d'exécution des autres transactions non validées. Ce niveau d'isolation est rarement utilisé dans les applications pratiques car ses performances ne sont guère meilleures que les autres niveaux. La lecture de données non validées est également appelée lecture sale.

Lecture validée

Il s'agit du niveau d'isolement par défaut pour la plupart des systèmes de bases de données (mais pas le niveau par défaut de MySQL). Cela répond à la définition simple de l'isolement : une transaction ne peut voir que les modifications apportées par les transactions validées. Ce niveau d'isolement prend également en charge ce que l'on appelle la lecture non répétable, car d'autres instances de la même transaction peuvent avoir de nouvelles validations pendant le traitement de l'instance, de sorte que la même sélection peut renvoyer des résultats différents.

Lecture répétable (Mysql par défaut est : REPEATABLE-READ)

Il s'agit du niveau d'isolation de transaction par défaut de MySQL. Il garantit que plusieurs instances de la même transaction verront le même message lors de la lecture simultanée de la ligne de données. Cependant, en théorie, cela entraînera un autre problème épineux : la lecture fantôme (Phantom Read). En termes simples, la lecture fantôme signifie que lorsque l'utilisateur lit une certaine plage de lignes de données, une autre transaction insère une nouvelle ligne dans la plage. Lorsque l'utilisateur lit les lignes de données dans la plage, il constatera qu'il y a de nouveaux " Fantôme " OK. . Les moteurs de stockage InnoDB et Falcon résolvent ce problème grâce au mécanisme de contrôle de concurrence multiversion (MVCC, Multiversion Concurrency Control).

Sérialisable

Il s'agit du niveau d'isolement le plus élevé. Il résout le problème de lecture fantôme en forçant les transactions à être ordonnées afin qu'elles ne puissent pas entrer en conflit les unes avec les autres. En bref, il ajoute un verrou partagé sur chaque ligne de données lue. À ce niveau, de nombreux délais d'attente et conflits de verrouillage peuvent en résulter. ?                                           

Lorsque les mêmes données sont lues, les problèmes susceptibles de se produire sont :

Dirty Read (Drity Read) : une certaine transaction a mis à jour une copie des données et une autre transaction a lu les mêmes données à ce moment-là. Pour une raison quelconque, si l'opération RollBack précédente est effectuée, les données lues par la transaction suivante seront incorrectes.

Lecture non répétable : Les données sont incohérentes entre deux requêtes d'une transaction. Cela peut être dû aux données d'origine mises à jour par une transaction insérée entre les deux requêtes.

Lecture fantôme : le nombre d'éléments de données dans deux requêtes d'une transaction est incohérent. Par exemple, une transaction interroge plusieurs lignes de données, tandis qu'une autre transaction insère plusieurs nouvelles colonnes de données à ce moment-là. transaction précédente, vous constaterez qu'il existe plusieurs colonnes de données qu'elle n'avait pas auparavant.

# !

Après Django2.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal