Maison base de données tutoriel mysql Quels sont les verrous de la base de données MySQL ?

Quels sont les verrous de la base de données MySQL ?

May 08, 2019 am 09:29 AM
mysql数据库 verrouillage de la base de données

Les verrous dans la base de données MySQL sont : 1. Le verrou partagé, qui signifie la lecture des données ; 2. Le verrou exclusif, qui signifie l'écriture des données ; 3. Le verrou de ligne, qui verrouille une ligne d'enregistrements et n'affecte que Un enregistrement ; 4. Verrouillage d'intention, afin de révéler le type de verrouillage qui sera demandé pour la ligne suivante dans une transaction.

Quels sont les verrous de la base de données MySQL ?

Verrouillage de la base de données MySQL

1. lock)

Le verrouillage partagé (S) signifie la lecture de données. Par conséquent, plusieurs transactions peuvent ajouter simultanément des verrous partagés à un objet.

Instruction SQL qui génère un verrou partagé :

select * from ad_plan lock in share mode;
Copier après la connexion

2 Verrouillage exclusif (Verrou exclusif, également appelé verrouillage X)

Le verrouillage exclusif signifie que le data Effectuer des opérations d'écriture. Si une transaction ajoute un verrou exclusif à un objet, les autres transactions ne peuvent pas y ajouter de verrous supplémentaires.
Instruction SQL qui génère un verrou exclusif :

 select * from ad_plan for update;
Copier après la connexion

3. Row Lock (Row Lock)

Verrouille une ligne d'enregistrements, affectant un seul enregistrement.

est généralement utilisé dans les instructions DML, telles que INSERT, UPDATE, DELETE, etc.

Le verrouillage des lignes InnoDB est obtenu en verrouillant les entrées d'index sur l'index. Ceci est différent de MySQL et Oracle, qui est obtenu en verrouillant les lignes de données correspondantes dans le bloc de données.

La fonctionnalité d'implémentation du verrouillage de ligne d'InnoDB signifie qu'InnoDB utilise des verrous au niveau des lignes uniquement lorsque les données sont récupérées via des conditions d'index. Sinon, InnoDB utilisera des verrous de table !

4. Verrouillage d'intention

Le verrouillage d'intention est un verrou au niveau de la table. Son objectif de conception est principalement de révéler le type de verrouillage qui sera demandé pour la rangée suivante. dans une transaction. Deux verrous de table dans InnoDB :
Intention Shared Lock (IS) : Indique que la transaction se prépare à ajouter un verrou partagé à la ligne de données, ce qui signifie qu'avant d'ajouter un verrou partagé à une ligne de données, le verrou IS de la la table doit d'abord être obtenue ;
Verrou exclusif d'intention (IX) : similaire à ce qui précède, cela signifie que la transaction se prépare à ajouter un verrou exclusif à la ligne de données, indiquant que la transaction doit d'abord obtenir le verrou IX du table avant d’ajouter un verrou exclusif à une ligne de données.
Les verrous d'intention sont automatiquement ajoutés par InnoDB et ne nécessitent pas l'intervention de l'utilisateur.
Pour INSERT, UPDATE et DELETE, InnoDB ajoutera automatiquement des verrous exclusifs aux données impliquées ; pour les instructions SELECT générales, InnoDB n'ajoutera aucun verrou et les transactions peuvent explicitement ajouter des verrous partagés ou des verrous exclusifs via les instructions suivantes.
Verrouillage partagé : SELECT … VERROUILLER EN MODE PARTAGE ;
Verrouillage exclusif : SELECT … POUR MISE À JOUR ;

Niveau de verrouillage

Réparti selon le niveau ou la densité des verrous, MySQL dispose de trois niveaux de verrouillage : niveau page, niveau table et niveau ligne.

(1) Verrous au niveau de la table

Faible surcharge, verrouillage rapide ; pas de blocage ; grande granularité de verrouillage, probabilité la plus élevée de conflits de verrouillage, concurrence élevée la plus faible.

(2) Les verrous au niveau des lignes

sont coûteux et lents à verrouiller ; le plus bas, et la concurrence est également faible.

(3) Verrouillage de page

Le coût et le temps de verrouillage sont limités entre les verrous de table et les verrous de ligne ; la granularité du verrouillage est limitée entre les verrous de table et de ligne ; locks Entre les locks de lignes, la concurrence est moyenne.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Aug 05, 2023 pm 06:21 PM

Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Introduction : Dans la construction de l'Internet moderne, l'e-mail est un outil de communication important. Qu’il s’agisse d’enregistrement d’utilisateur, de réinitialisation de mot de passe ou de confirmation de commande en e-commerce, l’envoi d’emails est une fonction essentielle. Cet article explique comment utiliser PHPMailer pour envoyer des e-mails et enregistrer les informations de courrier électronique dans le tableau d'informations utilisateur de la base de données MySQL. 1. Installez la bibliothèque PHPMailer PHPMailer est

Go langage et base de données MySQL : Comment séparer les données chaudes et froides ? Go langage et base de données MySQL : Comment séparer les données chaudes et froides ? Jun 18, 2023 am 08:26 AM

À mesure que la quantité de données continue d’augmenter, les performances des bases de données deviennent un problème de plus en plus important. Le traitement de séparation des données chaudes et froides est une solution efficace qui peut séparer les données chaudes et les données froides, améliorant ainsi les performances et l'efficacité du système. Cet article explique comment utiliser le langage Go et la base de données MySQL pour séparer les données chaudes et froides. 1. Qu'est-ce que le traitement de séparation des données chaudes et froides ? Le traitement de séparation des données chaudes et froides est un moyen de classer les données chaudes et les données froides. Les données chaudes font référence aux données avec une fréquence d'accès élevée et des exigences de performances élevées.

Comment effectuer une sauvegarde incrémentielle des données de la base de données MySQL à l'aide du langage Go Comment effectuer une sauvegarde incrémentielle des données de la base de données MySQL à l'aide du langage Go Jun 17, 2023 pm 02:28 PM

À mesure que la quantité de données augmente, la sauvegarde des bases de données devient de plus en plus importante. Pour la base de données MySQL, nous pouvons utiliser le langage Go pour réaliser une sauvegarde incrémentielle automatisée. Cet article présentera brièvement comment utiliser le langage Go pour effectuer une sauvegarde incrémentielle des données de la base de données MySQL. 1. Installez l'environnement linguistique Go. Tout d'abord, nous devons installer l'environnement linguistique Go localement. Vous pouvez vous rendre sur le site officiel pour télécharger le package d'installation correspondant et l'installer. 2. Installez la bibliothèque correspondante. Le langage Go fournit de nombreuses bibliothèques tierces pour accéder aux bases de données MySQL, parmi lesquelles les plus couramment utilisées sont

Comment utiliser la base de données MySQL pour l'analyse de séries chronologiques ? Comment utiliser la base de données MySQL pour l'analyse de séries chronologiques ? Jul 12, 2023 am 08:39 AM

Comment utiliser la base de données MySQL pour l'analyse de séries chronologiques ? Les données de séries chronologiques font référence à une collection de données classées par ordre chronologique, qui présentent une continuité et une corrélation temporelles. L'analyse des séries chronologiques est une méthode d'analyse de données importante qui peut être utilisée pour prédire les tendances futures, découvrir les changements cycliques, détecter les valeurs aberrantes, etc. Dans cet article, nous présenterons comment utiliser une base de données MySQL pour l'analyse de séries chronologiques, ainsi que des exemples de code. Créer une table de données Tout d'abord, nous devons créer une table de données pour stocker les données de séries chronologiques. Supposons que nous voulions analyser le nombre

Dans quelle mesure puis-je développer des compétences en matière de bases de données MySQL pour être employées avec succès ? Dans quelle mesure puis-je développer des compétences en matière de bases de données MySQL pour être employées avec succès ? Sep 12, 2023 pm 06:42 PM

Dans quelle mesure puis-je développer des compétences en matière de bases de données MySQL pour être employées avec succès ? Avec le développement rapide de l’ère de l’information, les systèmes de gestion de bases de données sont devenus un élément indispensable et important dans tous les domaines. En tant que système de gestion de bases de données relationnelles couramment utilisé, MySQL propose un large éventail de domaines d'application et d'opportunités d'emploi. Alors, dans quelle mesure les compétences en matière de bases de données MySQL doivent-elles être développées pour être utilisées avec succès ? Tout d’abord, maîtriser les principes de base et les connaissances de base de MySQL est la condition la plus fondamentale. MySQL est une gestion de base de données relationnelle open source

Comment utiliser la base de données MySQL pour le traitement d'images ? Comment utiliser la base de données MySQL pour le traitement d'images ? Jul 14, 2023 pm 12:21 PM

Comment utiliser la base de données MySQL pour le traitement d'images ? MySQL est un puissant système de gestion de bases de données relationnelles. En plus d'être utilisé pour stocker et gérer des données, il peut également être utilisé pour le traitement d'images. Cet article explique comment utiliser une base de données MySQL pour le traitement d'images et fournit quelques exemples de code. Avant de commencer, assurez-vous d'avoir installé une base de données MySQL et d'être familiarisé avec les instructions SQL de base. Créer une table de base de données Commencez par créer une nouvelle table de base de données pour stocker les données d'image. La structure du tableau peut être la suivante

Comment établir une connexion fiable à la base de données MySQL en utilisant le langage Go ? Comment établir une connexion fiable à la base de données MySQL en utilisant le langage Go ? Jun 17, 2023 pm 07:18 PM

Avec la grande quantité de données qui doivent être stockées et traitées, MySQL est devenue l'une des bases de données relationnelles les plus couramment utilisées dans le développement d'applications. Le langage Go devient de plus en plus populaire parmi les développeurs en raison de son traitement simultané efficace et de sa syntaxe concise. Cet article amènera les lecteurs à mettre en œuvre une connexion fiable à la base de données MySQL via le langage Go, permettant aux développeurs d'interroger et de stocker les données plus efficacement. 1. Plusieurs façons pour le langage Go de se connecter à la base de données MySQL. Il existe généralement trois façons de se connecter à la base de données MySQL en langage Go, à savoir : 1. Bibliothèque tierce.

Comment migrer les données de la base de données MySQL à l'aide du langage Go Comment migrer les données de la base de données MySQL à l'aide du langage Go Jun 17, 2023 am 09:01 AM

Avec la croissance de l’entreprise, les mises à niveau des versions de bases de données et d’autres facteurs, la migration de bases de données devient de plus en plus courante. Lors de la migration de données, il est important de choisir les bons outils et langages. Cet article explique comment utiliser le langage Go pour migrer les données de la base de données MySQL. Installez le pilote MySQL Avant d'utiliser le langage Go pour migrer la base de données MySQL, vous devez d'abord installer le pilote MySQL. Dans le langage Go, vous avez le choix entre de nombreux pilotes MySQL. Dans cet article, nous sélectionnerons le package de pilotes MySQL officiel le plus couramment utilisé : "dat

See all articles