Maison > base de données > tutoriel mysql > Comment sélectionner des données dans une base de données esclave MySQL sans verrouillage ?

Comment sélectionner des données dans une base de données esclave MySQL sans verrouillage ?

DDD
Libérer: 2024-12-13 05:02:09
original
529 Les gens l'ont consulté

How to Select Data from a MySQL Slave Database Without Locking?

Sélection de données sans verrouillage dans MySQL

Lors de l'interrogation d'une table qui est activement modifiée par des événements, il est possible de rencontrer des verrous de table, qui peuvent performances d’impact. Existe-t-il un moyen d'effectuer une instruction select dans MySQL qui ne provoque pas de tels verrous ?

Solution pour les bases de données esclaves

La solution mentionnée dans l'article intitulé "MYSQL AVEC NOLOCK" n'est pas applicable dans ce cas car il s'agit d'une base de données esclave. De plus, définir le niveau d'isolement des transactions sur READ-UNCOMMITTED entraînera une erreur sur une base de données esclave configurée pour la journalisation binaire basée sur STATEMENT.

Méthodologie spécifique à MySQL

Pour éviter le verrouillage lors de la sélection de données sur une base de données esclave MySQL, vous pouvez utiliser l'approche suivante :

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;
Copier après la connexion
Copier après la connexion

Cette méthode définit temporairement l'isolation des transactions niveau à READ UNCOMMITTED, ce qui permet à l'instruction select de se poursuivre sans obtenir de verrous. Cependant, il est important de se rappeler que ce paramètre ne peut être utilisé que dans une transaction suivie d'une instruction COMMIT.

Suggestion d'amélioration

Comme alternative, vous pouvez envisager d'utiliser la syntaxe suivante suggérée par Michael Mior :

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;
Copier après la connexion
Copier après la connexion

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal