1. Verrouillage pessimiste 1. Verrouillage exclusif Lorsqu'une transaction exploite des données, cette partie des données n'est verrouillée que lorsque l'opération est terminée. Seules les autres opérations de transaction peuvent opérer sur cette partie des données. Cela empêchera d'autres processus de lire ou de modifier les données du tableau. 2. Implémentation : Dans la plupart des cas, cela s'appuie sur le mécanisme de verrouillage de la base de données. Généralement, select ...for update est utilisé pour verrouiller les données sélectionnées, comme select * from account which name="Max" for update, this. SQL L'instruction verrouille tous les enregistrements de la table des comptes qui répondent aux conditions de récupération (name="Max"). Avant que cette transaction ne soit validée (le verrou pendant la transaction sera libéré lorsque la transaction sera validée), le monde extérieur ne peut pas modifier ces enregistrements. 2. Verrouillage optimiste 1. Si quelqu'un met à jour avant vous, votre mise à jour doit être rejetée et l'utilisateur peut ré-opérer. 2.
Introduction : Cet article explique le verrouillage en lecture (verrouillage partagé), le verrouillage en écriture (verrouillage exclusif) 2. Granularité du verrouillage : verrouillage de table (verrouillage de table), verrouillage au niveau de la ligne (verrouillage de ligne ) 3. Verrouillage optimiste et verrouillage pessimiste Verrouillage pessimiste Verrouillage exclusif : lorsqu'une transaction exploite des données, elle verrouille cette partie des données jusqu'à ce qu'elle soit déverrouillée une fois l'opération terminée. Seules les autres opérations de transaction peuvent opérer sur cette partie des données. Cela empêchera d'autres processus de lire ou de modifier les données du tableau. Implémentation : utilisez généralement select ...for update pour verrouiller les données sélectionnées, telles que
<.>
Introduction : Chaque fois que plusieurs requêtes doivent modifier les données en même temps, des problèmes de contrôle de concurrence surgissent. Nous discutons ici du contrôle de concurrence de MySQL à deux niveaux : la couche serveur et la couche moteur de stockage. Le contrôle de la concurrence est un sujet très vaste, et il existe une grande quantité de littérature théorique qui en discute en détail. Ici, nous discutons brièvement de la manière dont MySQL contrôle la lecture et l'écriture simultanées. En prenant comme exemple la boîte e-mail du système Unix, le format de fichier mbox typique est très simple. Tous les e-mails d'une boîte aux lettres mbox sont sérialisés ensemble et connectés bout à bout. Ce format est utile pour la lecture et Feixi
3 [MySQL] Contrôle de concurrence multi-versions
Introduction : l'implémentation de la plupart des moteurs de stockage transactionnels dans MySQL n'est pas un simple verrou au niveau des lignes. Basés sur l'amélioration des performances de concurrence, ils implémentent généralement le contrôle de concurrence multiversion (MVCC) en même temps. Non seulement MySQL, mais d'autres systèmes de bases de données tels qu'Oracle et PostgreSQL implémentent également MVCC, mais leurs mécanismes d'implémentation sont différents car il n'existe pas de norme unifiée pour MVCC. MVCC peut être considéré comme une variante du verrouillage au niveau des lignes, mais il évite les opérations de verrouillage dans de nombreux cas, ce qui réduit la surcharge. Bien que les mécanismes de mise en œuvre soient différents, la plupart d'entre eux implémentent
4
Explication détaillée du mécanisme de contrôle de concurrence Java
.Introduction : Dans le développement général, je constate souvent que de nombreux étudiants n'utilisent que quelques méthodes de base pour gérer le modèle de développement simultané Java. Par exemple, Volatile, synchronisé. Les packages de concurrence avancés tels que Lock et atomique ne sont pas souvent utilisés par de nombreuses personnes. Je pense que la plupart des raisons sont dues au manque d’attributs du principe. Dans le travail de développement chargé, qui peut saisir et utiliser avec précision le bon modèle de concurrence
5
Verrouillage exclusif dans le contrôle de concurrence PHP
Introduction : Verrous exclusifs dans le contrôle de concurrence PHP
6.
contrôle de concurrence PHP Redis téléchargement Redis. outil de visualisation redis cluster redis
Introduction : redis : contrôle de concurrence php redis : pour le contrôle de concurrence, vous pouvez utiliser memcacheq, le canal redirs et d'autres méthodes. Ici, je vais juste parler. à propos de redis. Pour contrôler la concurrence, redis utilise principalement les trois fonctions lPush llen et lPop dans l'API de la liste redis. lLen - Obtenez la longueur de la liste lPop - Supprimez la première de la liste et renvoyez-la. la liste. Si la liste n'existe pas Introduction : Le problème avec shmop est-ce que j'en ai fréquemment besoin dans le programme Lors du traitement d'une donnée, je ne veux pas interroger MySQL à chaque fois, donc je retire les enregistrements à utiliser et j'utilise shmop pour les stocker dans la mémoire pour une modification ultérieure. Cependant, pendant le processus d'écriture, j'ai soudainement pensé à un problème de contrôle de concurrence, et je ne savais pas comment le résoudre : function function1() {Lire les données mémoire pendant une longue période (ligne modifiée x1) Écrire les données mémoire} function function2 Introduction : Le problème avec shmop est le suivant, j'en ai besoin dans le programme Je traite fréquemment une donnée et je ne veux pas interroger MySQL à chaque fois, je retire donc les enregistrements à utiliser et j'utilise shmop pour les stocker dans la mémoire pour une modification ultérieure. Cependant, pendant le processus d'écriture, j'ai soudainement pensé à un problème de contrôle de concurrence, et je ne savais pas comment le résoudre : function function1() {Lire les données mémoire pendant une longue période (ligne modifiée x1) Écrire les données mémoire} function function2 Introduction : Le contrôle de concurrence d'ACCESS est très médiocre, pensez à fermer la base de données après chaque opération Introduction : Comparaison du contrôle de concurrence (verrous) entre DB2 et Oracle [Recommandations de questions-réponses associées] : Multi-threading - notify/notifyAll de java : Comment notifier le thread spécifié ? java - Comment empêcher la suppression des informations solides de mémorisation avec le même nom d'utilisateur après que Spring Security ait activé le contrôle de concurrence de session ? Comment afficher les colonnes cachées d'une table Mysql ? Contrôle de concurrence optimiste : pourquoi Redis utilise le verrouillage optimiste, mais pas la base de données MySQL. Lesquels ?
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!