Les niveaux d'isolement des transactions MySQL par défaut sont Lecture non validée, Lecture validée, Lecture répétable et Sérialisable. 1. Lecture non validée, ce qui signifie que sous ce niveau d'isolement, les transactions peuvent lire les données non validées d'autres transactions ; 2. Lecture validée, ce qui signifie que sous ce niveau d'isolement, les transactions ne peuvent lire que les données qui ont été soumises. 3. Lecture répétable, etc. ; .
MySQL a quatre niveaux d'isolement de transaction par défaut, à savoir Read Uncommit (lecture non validée), Read Comended (lecture validée), Répétable Lecture (lecture répétable) et Sérialisable (sérialisation). Chaque niveau d’isolement sera présenté et expliqué en détail ci-dessous.
1. Lecture non validée : signifie que sous ce niveau d'isolement, les transactions peuvent lire les données non validées d'autres transactions. Ce niveau d'isolement est le plus bas et entraînera des lectures sales (Dirty Lire) question. Une lecture sale signifie qu'après qu'une transaction ait lu les données d'une autre transaction non validée, si la transaction est annulée, les données lues seront invalides.
2. Lire Engagé : signifie que sous ce niveau d'isolement, les transactions ne peuvent lire que les données soumises. Ce niveau d'isolement peut résoudre le problème des lectures sales, mais entraînera des lectures non répétables. Lire) question. Une lecture non répétable signifie que lorsque les mêmes données sont lues plusieurs fois au cours d'une transaction, les résultats de lecture sont incohérents.
3. Répétable Lire : signifie que sous ce niveau d'isolement, les transactions peuvent lire les mêmes données à plusieurs reprises et les résultats de lecture sont toujours cohérents. Ce niveau d'isolement peut résoudre le problème des lectures non répétables, mais il provoquera des lectures fantômes. Lire) question. La lecture fantôme signifie que la même requête est exécutée plusieurs fois au sein d'une transaction et que de nouvelles données qui remplissent les conditions sont ajoutées à l'ensemble de résultats.
4. Sérialisable : signifie que sous ce niveau d'isolement, les transactions sont exécutées strictement séquentiellement et que l'exécution simultanée n'est pas autorisée. Ce niveau d'isolement peut résoudre le problème des lectures fantômes, mais il affectera les performances de concurrence du système.
En plus des quatre niveaux d'isolement ci-dessus, MySQL fournit également un niveau d'isolement spécial par défaut, à savoir le niveau d'isolement par défaut (Default). Le niveau d'isolement par défaut est déterminé par la variable globale sql_mode du serveur. Si sql_mode est STRICT_ALL_TABLES, STRICT_TRANS_TABLES ou une combinaison de STRICT_ALL_TABLES et STRICT_TRANS_TABLES, le niveau d'isolement par défaut est REPEATABLE. LIRE. Si sql_mode ne contient pas la valeur ci-dessus, le niveau d'isolement par défaut est READ COMMITTED.
Dans les applications pratiques, il est très important de choisir le niveau d'isolement approprié. Si l'application a des exigences plus élevées en matière de cohérence des données, vous pouvez choisir un niveau d'isolement plus élevé, tel que Répétable. Lire ou sérialisable. Si vous avez des exigences moindres en matière de cohérence des données et des exigences plus élevées en matière de performances de simultanéité, vous pouvez choisir un niveau d'isolement inférieur, tel que Lecture validée.
De plus, MySQL fournit également une méthode pour définir le niveau d'isolation des transactions. Le niveau d'isolement des transactions peut être modifié en définissant la variable transaction_isolation au niveau de la session ou au niveau global. Par exemple, vous pouvez modifier le niveau d'isolement en Lecture à l'aide de l'instruction suivante Engagé :
DÉFINIR LE NIVEAU D'ISOLATION DES TRANSACTIONS DE SESSION READ COMMITTED ;
En résumé, les niveaux d'isolation des transactions par défaut de MySQL incluent Lecture non validée, Lecture validée et Répétable. Niveaux d'isolement en lecture, sérialisable et par défaut. Il est important de choisir le niveau d'isolement approprié pour garantir la cohérence des données et améliorer les performances de simultanéité.
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!