Maison > base de données > tutoriel mysql > le corps du texte

Analyse détaillée de MySQL et délai d'attente associé

小云云
Libérer: 2017-12-22 13:27:45
original
1722 Les gens l'ont consulté

Lors de l'interrogation de la bibliothèque mysql, la session est toujours interrompue lorsque la quantité de données est relativement importante. Au début, je pensais qu'il s'agissait d'un problème de délai d'attente lié à MySQL et à la connexion, mais cela s'est avéré être la cause de l'instabilité du réseau. Cet article présente principalement des informations détaillées sur MySQL et le délai d'attente lié à la connexion. Cet article résume principalement le délai d'attente lié à la connexion. Les amis qui en ont besoin peuvent s'y référer.

Ce qui suit résume le délai d'attente lié à la connexion

slave-net-timeout

Le nombre de secondes à attendre pour plus de données du maître avant que l'esclave considère la connexion interrompue, abandonne la lecture et tente de se reconnecter. La première tentative se produit immédiatement après le délai d'attente. L'intervalle entre les tentatives est contrôlé par l'option MASTER_CONNECT_RETRY de l'instruction CHANGE MASTER TO, et le nombre de tentatives de reconnexion est limité par l'option --master-retry-count. La valeur par défaut est de 3600 secondes (une heure).
Lorsque l'esclave pense qu'il y a un problème avec la connexion au maître, il attend N. secondes puis se déconnecte, reconnectez le maître

net_read_timeout :

Le nombre de secondes pour attendre plus de données d'une connexion avant d'abandonner la lecture lorsque le serveur. est en train de lire à partir du client, net_read_timeout est la valeur du délai d'attente contrôlant le moment d'abandonner
Le nombre de secondes à attendre pour obtenir les données d'une connexion avant de terminer la lecture lorsque le service lit les données du client, net_read_timeout contrôle le moment où il doit expirer ; .

net_write_timeout :

Le nombre de secondes d'attente pour qu'un bloc soit écrit sur une connexion avant d'abandonner l'écriture. Lorsque le serveur est en écrivant sur le client, net_write_timeout est la valeur du délai d'attente contrôlant le moment d'abandonner.
Combien de secondes attendre pour écrire le bloc sur la connexion avant de terminer l'écriture ; lorsque le service écrit des données sur le client, net_write_timeout contrôle le moment où il doit expirer

wait_timeout

Le nombre de secondes pendant lesquelles le serveur attend une activité sur une connexion non interactive avant de la fermer 🎜>interactive_timeout :

Le nombre de secondes pendant lesquelles le serveur attend une activité sur une connexion non interactive. connexion interactive avant de la fermer.Une connexion sans état interactif jusqu'à ce qu'elle soit forcée par le serveur. Le nombre de secondes pendant lesquelles le serveur mysqld attend un paquet de connexion avant de répondre avec une mauvaise prise de contact. La valeur par défaut est de 10 secondes.

Temps d'attente d'une réponse de connexion

connect_timeout : Fonction pendant la phase d'acquisition de connexion (authentifier)

interactive_timeout et wait_timeout : fonctionnent pendant la phase d'inactivité de la connexion (veille)
net_read_timeout et net_write_timeout : fonctionnent pendant la phase d'occupation de la connexion (requête).


L'obtention d'une connexion MySQL est le résultat de plusieurs poignées de main. En plus de la vérification correspondante du nom d'utilisateur et du mot de passe, il existe également une vérification IP->HOST->DNS->Tout. Cette étape est possible. Le fil de discussion est bloqué en raison de problèmes de réseau. Afin d'éviter que les threads ne perdent inutilement des attentes de vérification, les demandes de connexion qui dépassent connect_timeout seront rejetées.

Même s'il n'y a pas de problème de réseau, le client ne peut pas être autorisé à occuper la connexion en permanence. Pour les clients qui restent en état de veille plus longtemps que wait_timeout (ou interactive_timeout, selon l'indicateur client_interactive), MySQL se déconnectera activement.

Même si la connexion n'est pas en état de veille, c'est-à-dire que le client est occupé à calculer ou à stocker des données, MySQL choisit d'attendre sous condition. Pendant le processus de distribution des paquets de données, le client peut être trop tard pour répondre (envoi, réception ou traitement des paquets de données trop lents). Afin de garantir que la connexion ne soit pas gaspillée dans une attente interminable, MySQL choisira également de déconnecter activement la connexion sous condition (net_read_timeout et net_write_timeout).



Recommandations associées :


Fil unique de setTimeout en JavaScript


Exemple d'explication de setTimeout pour voir la fonction js processus d'exécution


fonction setTimeout() en js

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!