Habituellement, au démarrage du serveur, chaque variable globale est initialisée à sa valeur par défaut (nous pouvons modifier ces valeurs par défaut via la ligne de commande ou les options spécifiées dans le fichier d'options), et puis le serveur Un ensemble de variables de session est également conservé pour chaque client connecté, les variables de session du client étant initialisées au moment de la connexion en utilisant les valeurs actuelles des variables globales correspondantes.
Un exemple est le suivant :
initialisera une variable système nomméedefault_storage_engine
avec une portée GLOBAL au démarrage du serveur. Après cela, chaque fois qu'un client se connecte au serveur, le serveur. allouera séparément une variable système nommée default_storage_engine avec une portée de SESSION au client. La valeur de la variable système avec une portée de SESSION est initialisée en fonction de la valeur de la variable système du même nom avec une portée actuelle de GLOBAL.
(Tutoriel vidéo d'apprentissage gratuit recommandé :Tutoriel vidéo MySQL)
De toute évidence, la portée des variables système définies via les options de démarrage est GLOBALE, c'est-à-dire que tous les clients sont valide car aucun programme client n'est connecté au démarrage du système. Après avoir compris la portée GLOBAL et SESSION des variables système, examinons la syntaxe de définition des variables système via le programme client lors de l'exécution du programme serveur :
SET [GLOBAL|SESSION] 系统变量名 = 值;
ou comme suit :
SET [@@(GLOBAL|SESSION).]var_name = XXX;
Par exemple, nous souhaitons changer la valeur de la variable système default_storage_engine avec une portée GLOBAL en MyISAM pendant le fonctionnement du serveur. C'est-à-dire que nous voulons que tous les nouveaux clients connectés au serveur utilisent MyISAM comme stockage par défaut. moteur. Ensuite, nous pouvons choisir les deux suivants. Définissez l'une des déclarations :
Déclaration un :
SET GLOBAL default_storage_engine = MyISAM;
Déclaration deux :
SET @@GLOBAL.default_storage_engine = MyISAM;
Si vous souhaitez uniquement prendre effet pour ce client, vous pouvez également choisir l'une des trois déclarations ci-dessous. Pour définir l'une des :
Déclaration un :
SET SESSION default_storage_engine = MyISAM;
Déclaration deux :
SET @@SESSION.default_storage_engine = MyISAM;
Déclaration trois :
SET default_storage_engine = MyISAM;
Vous pouvez également utiliser l'instruction trois ci-dessus. On peut voir que si la portée est omise dans l'instruction qui définit la variable système, la portée par défaut est SESSION. En d’autres termes, nom de la variable système SET = valeur et nom de la variable système SET SESSION = valeur sont équivalents.
Afficher les variables système avec différentes portées
Étant donné que les variables système ont des portées, quelle portée des variables système notre instruction SHOW VARIABLES vérifie-t-elle ?
Réponse : Par défaut, les variables système dans la portée SESSION sont affichées.
Bien sûr, nous pouvons également ajouter la portée des variables système que nous voulons vérifier sur l'instruction pour vérifier les variables système, comme ceci :
SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
Articles et tutoriels connexes recommandés :Tutoriel MySQL
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!