Définition du verrou pessimiste et du verrou optimiste
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.

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.

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.

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!
Outils d'IA chauds
Undress AI Tool
Images de déshabillage gratuites
Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes
AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.
Clothoff.io
Dissolvant de vêtements AI
Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !
Article chaud
Outils chauds
Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP
Dreamweaver CS6
Outils de développement Web visuel
SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
Sujets chauds
Établir des connexions distantes sécurisées à un serveur MySQL
Jul 04, 2025 am 01:44 AM
ToseCurelyConnectToAremotemysQlServer, Usesshtunneling, ConfigureMysqlForremoteAccess, Setfirewallrules et Considersslincryption . Premier, établianshtunnelwithssh-l3307: localhost: 3306User @ Remote-Server-NandConnectViamysql-H127.0.0.1-P3307.Second, Editmys
Quels sont les niveaux d'isolement des transactions dans MySQL, et quelle est la valeur par défaut?
Jun 23, 2025 pm 03:05 PM
Le niveau d'isolement des transactions par défaut de MySQL est RepeatableRead, qui empêche les lectures sales et les lectures non répétibles via MVCC et les serrures d'écart, et évite la lecture fantôme dans la plupart des cas; other major levels include read uncommitted (ReadUncommitted), allowing dirty reads but the fastest performance, 1. Read Committed (ReadCommitted) ensures that the submitted data is read but may encounter non-repeatable reads and phantom readings, 2. RepeatableRead default level ensures that multiple reads within the transaction are consistent, 3. Serialization (Serializable) the highest level, prevents other transactions from modifying data through locks, ensuring data intégrité mais sacrifier les performances;
Comment ajouter le répertoire du bac MySQL au chemin du système
Jul 01, 2025 am 01:39 AM
Pour ajouter le répertoire bac de MySQL au chemin du système, il doit être configuré en fonction des différents systèmes d'exploitation. 1. Système Windows: Trouvez le dossier bin dans le répertoire d'installation MySQL (le chemin par défaut est généralement C: \ ProgramFiles \ MySQL \ MySQLServerx.x \ bin), cliquez avec le bouton droit "Cet ordinateur" → "Propriétés" → "Paramètres du système avancé" Invite et entrez MySQL - Vérification de Version; 2.Macos et Linux Systèmes: les utilisateurs bash modifient ~ / .bashrc ou ~ / .bash_
Où est-ce que MySQL Workbench enregistre les informations de connexion
Jun 26, 2025 am 05:23 AM
MySqlWorkBench stocke les informations de connexion dans le fichier de configuration du système. Le chemin spécifique varie en fonction du système d'exploitation: 1. Il est situé dans% appdata% \ mysql \ workbench \ connections.xml dans le système Windows; 2. Il est situé dans ~ / bibliothèque / applicationsupport / mysql / workbench / connections.xml dans le système macOS; 3. Il est généralement situé dans ~ / .mysql / workbench / connexion.xml dans le système Linux ou ~ / .local / share / data / mysql / wor
Effectuer des sauvegardes logiques à l'aide de mysqldump dans MySQL
Jul 06, 2025 am 02:55 AM
MySQLDump est un outil commun pour effectuer des sauvegardes logiques des bases de données MySQL. Il génère des fichiers SQL contenant des instructions de création et d'insertion pour reconstruire la base de données. 1. Il ne sauvegarde pas le fichier d'origine, mais convertit la structure de la base de données et le contenu en commandes SQL portables; 2. Il convient aux petites bases de données ou à la récupération sélective et ne convient pas à la récupération rapide des données de niveau TB; 3. 4. Utilisez la commande MySQL pour importer pendant la récupération et peut désactiver les vérifications des clés étrangères pour améliorer la vitesse; 5. Il est recommandé de tester régulièrement la sauvegarde, d'utiliser la compression et de régler automatiquement.
Analyser le journal de requête lent MySQL pour trouver des goulots d'étranglement des performances
Jul 04, 2025 am 02:46 AM
Allumez les journaux de requête lente MySQL et analysez les problèmes de performances localisés. 1. Modifiez le fichier de configuration ou définissez dynamiquement Slow_Query_Log et Long_Query_time; 2. Le journal contient des champs clés tels que Query_time, Lock_time, ROWS_EXAMINE pour aider à juger les goulots d'étranglement de l'efficacité; 3. Utilisez les outils MySqlDumpSlow ou Pt-Query-digest pour analyser efficacement les journaux; 4. Les suggestions d'optimisation incluent l'ajout d'index, d'éviter la sélection *, le fractionnement des requêtes complexes, etc. Par exemple, l'ajout d'un index à user_id peut réduire considérablement le nombre de lignes numérisées et améliorer l'efficacité de la requête.
Gestion des valeurs nuls dans les colonnes et requêtes MySQL
Jul 05, 2025 am 02:46 AM
Lors de la gestion des valeurs nuls dans MySQL, veuillez noter: 1. Lors de la conception du tableau, les champs clés sont définis sur Notnull et les champs facultatifs sont autorisés nuls; 2. ISNULL ou ISNOTNULL doit être utilisé avec = ou! =; 3. Les fonctions IFNULL ou Coalesce peuvent être utilisées pour remplacer les valeurs par défaut d'affichage; 4. Soyez prudent lorsque vous utilisez des valeurs nulles directement lors de l'insertion ou de la mise à jour, et faites attention aux méthodes de traitement de la source de données et du cadre ORM. NULL représente une valeur inconnue et n'égale aucune valeur, y compris lui-même. Par conséquent, soyez prudent lorsque vous interrogez, comptez et connectez les tables pour éviter les données manquantes ou les erreurs logiques. L'utilisation rationnelle des fonctions et des contraintes peut réduire efficacement les interférences causées par NULL.
Réinitialiser le mot de passe racine pour MySQL Server
Jul 03, 2025 am 02:32 AM
Pour réinitialiser le mot de passe racine de MySQL, veuillez suivre les étapes suivantes: 1. Arrêtez le serveur MySQL, utilisez SudosystemCTlStopmysql ou SudosystemctlStopMysQLD; 2. Démarrez MySQL en - Skip-Grant-Tables, exécutez SudomysQld-Skip-Grant-Tables &; 3. Connectez-vous à MySQL et exécutez la commande SQL correspondante pour modifier le mot de passe en fonction de la version, telle que Flushprivileges; alterUser'root '@' localhost'identifiedby'your_new


