Maison >base de données >tutoriel mysql >Définition du verrou pessimiste et du verrou optimiste

Définition du verrou pessimiste et du verrou optimiste

hzc
hzcoriginal
2020-07-02 16:07:194930parcourir

Le verrouillage pessimiste, comme son nom l'indique, présente de fortes caractéristiques exclusives et exclusives. Il fait référence à une attitude conservatrice à l'égard des données modifiées par le monde extérieur. Le mécanisme de verrouillage optimiste adopte un mécanisme de verrouillage plus détendu. Par rapport au verrouillage pessimiste, le verrouillage optimiste est également un mécanisme permettant d'éviter les erreurs de traitement des données causées par la lecture fantôme de la base de données, le long temps de traitement commercial et d'autres raisons.

Définition du verrou pessimiste et du verrou optimiste

Verrouillage optimiste (Verrouillage optimiste)

Le verrouillage optimiste est relatif au verrouillage optimiste suppose que les données sont normales. Dans certaines circonstances, les conflits ne se produiront pas, donc lorsque les données seront soumises pour mise à jour, le conflit des données sera officiellement détecté. Si un conflit est détecté, un message d'erreur sera renvoyé à l'utilisateur pour lui permettre de décider quoi faire.

Encyclopédie Baidu :
Le mécanisme de verrouillage optimiste adopte un mécanisme de verrouillage plus détendu. Le verrouillage optimiste est relatif au verrouillage pessimiste. Il s'agit également d'un mécanisme permettant d'éviter les erreurs de traitement des données causées par des lectures fantômes dans la base de données et un long temps de traitement métier. Cependant, le verrouillage optimiste n'utilise pas délibérément le mécanisme de verrouillage de la base de données elle-même, mais s'appuie sur celui-ci. les données elles-mêmes pour garantir l’exactitude des données.

Par rapport au verrouillage pessimiste, le verrouillage optimiste n'utilise pas le mécanisme de verrouillage fourni par la base de données lors du traitement de la base de données. La manière générale d'implémenter le verrouillage optimiste consiste à enregistrer la version des données.

Définition du verrou pessimiste et du verrou optimiste

Le contrôle de concurrence optimiste estime que la probabilité d'une course aux données entre les transactions est relativement faible, alors procédez aussi directement que possible et ne verrouillez pas jusqu'à la soumission, donc aucun verrou ou blocage ne se produira se produire.

Verrouillage pessimiste

Lorsque vous souhaitez modifier une donnée dans la base de données, afin d'éviter d'être modifiée par d'autres en même temps, la meilleure façon est Verrouillez les données directement pour éviter la concurrence. Cette méthode d'utilisation du mécanisme de verrouillage de la base de données pour verrouiller les données avant de les modifier puis de les modifier est appelée contrôle de concurrence pessimiste [également connu sous le nom de « verrouillage pessimiste », Pessimistic Concurrency Control, abréviation « PCC »].

Encyclopédie Baidu :
Le verrou pessimiste, comme son nom l'indique, possède de fortes caractéristiques exclusives et exclusives. Il fait référence à une attitude conservatrice à l'égard des données modifiées par le monde extérieur (y compris d'autres transactions courantes du système et le traitement des transactions provenant de systèmes externes). Par conséquent, les données restent verrouillées pendant tout le processus de traitement des données. La mise en œuvre du verrouillage pessimiste repose souvent sur le mécanisme de verrouillage fourni par la base de données (seul le mécanisme de verrouillage fourni par la couche base de données peut véritablement garantir l'exclusivité de l'accès aux données. Sinon, même si le mécanisme de verrouillage est implémenté dans ce système, il n'y a pas garantir que le système externe ne modifiera pas les données).

La raison pour laquelle on l'appelle verrouillage pessimiste est qu'il s'agit d'une méthode de contrôle de concurrence qui a une attitude pessimiste à l'égard de la modification des données. Nous pensons généralement que la probabilité que les données soient modifiées simultanément est relativement élevée, elles doivent donc être verrouillées avant toute modification.

Les verrous pessimistes sont principalement divisés en verrous partagés ou verrous exclusifs

  • Le verrou partagé [Verrou partagé] est également appelé verrou de lecture, ou verrou S en abrégé. Comme son nom l'indique, un verrou partagé signifie que plusieurs transactions peuvent partager un verrou sur les mêmes données, et elles peuvent toutes accéder aux données, mais elles ne peuvent que les lire et non les modifier.

  • Le verrouillage exclusif [Verrou exclusif] est également appelé verrouillage en écriture, ou verrouillage X en abrégé. Comme leur nom l'indique, les verrous exclusifs ne peuvent pas coexister avec d'autres verrous. Si une transaction acquiert un verrou exclusif sur une ligne de données, les autres transactions ne peuvent pas acquérir d'autres verrous sur la ligne, y compris les verrous partagés et exclusifs. Cependant, les transactions qui acquièrent des verrous exclusifs le peuvent. Lire et modifier des lignes de données.

Le contrôle de concurrence pessimiste est en fait une stratégie conservatrice consistant à « obtenir d'abord le verrou, puis l'accès », qui fournit une garantie pour la sécurité du traitement des données.

Définition du verrou pessimiste et du verrou optimiste

Cependant, en termes d'efficacité, le mécanisme de verrouillage entraînera une surcharge supplémentaire pour la base de données et augmentera le risque de blocage. De plus, le parallélisme sera réduit. Si une transaction verrouille une ligne de données, les autres transactions doivent attendre que la transaction soit traitée avant de traiter cette ligne de données.

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