Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der globalen und lokalen Variablen von MySQL

Detaillierte Erläuterung der globalen und lokalen Variablen von MySQL

王林
王林nach vorne
2020-01-27 20:39:042615Durchsuche

Detaillierte Erläuterung der globalen und lokalen Variablen von MySQL

Normalerweise wird beim Serverstart jede globale Variable auf ihren Standardwert initialisiert (wir können diese Standardwerte über die Befehlszeile oder die in der Optionsdatei angegebenen Optionen ändern) und Dann verwaltet der Server auch einen Satz Sitzungsvariablen für jeden verbundenen Client, wobei die Sitzungsvariablen des Clients zum Zeitpunkt der Verbindung mit den aktuellen Werten der entsprechenden globalen Variablen initialisiert werden.

Ein Beispiel ist wie folgt:

initialisiert eine Systemvariable mit dem Namen default_storage_engine mit einem Gültigkeitsbereich von GLOBAL, wenn der Server gestartet wird weist dem Client separat eine Systemvariable mit dem Namen „default_storage_engine“ und dem Gültigkeitsbereich „SESSION“ zu. Der Wert der Systemvariablen mit dem Gültigkeitsbereich „SESSION“ wird entsprechend dem Wert der gleichnamigen Systemvariablen mit dem aktuellen Gültigkeitsbereich „GLOBAL“ initialisiert.

(Empfohlenes kostenloses Lernvideo-Tutorial: MySQL-Video-Tutorial )

Offensichtlich ist der Umfang der durch Startoptionen festgelegten Systemvariablen GLOBAL, d. h. für alle Clients gültig, da beim Systemstart keine Verbindung zum Client-Programm hergestellt wurde. Nachdem wir den GLOBAL- und SESSION-Bereich von Systemvariablen verstanden haben, werfen wir einen Blick auf die Syntax zum Festlegen von Systemvariablen über das Client-Programm während der Ausführung des Serverprogramms:

SET [GLOBAL|SESSION] 系统变量名 = 值;

oder wie folgt:

SET [@@(GLOBAL|SESSION).]var_name = XXX;

Zum Beispiel möchten wir den Wert der Systemvariablen default_storage_engine mit einem Gültigkeitsbereich von GLOBAL in MyISAM ändern, während der Server läuft. Das heißt, wir möchten, dass alle neuen Clients, die mit dem Server verbunden sind, MyISAM als Standardspeicher verwenden Dann können wir die folgenden zwei auswählen. Stellen Sie eine der Anweisungen ein:

Anweisung eins:

SET GLOBAL default_storage_engine = MyISAM;

Anweisung zwei:

SET @@GLOBAL.default_storage_engine = MyISAM;

Wenn Sie nur wirksam werden möchten Für diesen Client können Sie auch eine der drei folgenden Anweisungen auswählen:

Anweisung eins:

SET SESSION default_storage_engine = MyISAM;

Anweisung zwei:

SET @@SESSION.default_storage_engine = MyISAM;

Anweisung drei:

SET default_storage_engine = MyISAM;

Sie können auch die obige Anweisung drei verwenden. Es ist ersichtlich, dass der Standardbereich SESSION ist, wenn der Bereich in der Anweisung zum Festlegen der Systemvariablen weggelassen wird. Mit anderen Worten: SET Systemvariablenname = Wert und SET SESSION Systemvariablenname = Wert sind gleichwertig.

Systemvariablen mit unterschiedlichen Gültigkeitsbereichen anzeigen

Da Systemvariablen Gültigkeitsbereiche haben, welchen Gültigkeitsbereich von Systemvariablen prüft unsere SHOW VARIABLES-Anweisung?

Antwort: Standardmäßig werden die Systemvariablen im SESSION-Bereich angezeigt.

Natürlich können wir auch den Bereich der Systemvariablen, den wir überprüfen möchten, in der Anweisung hinzufügen, um die Systemvariablen zu überprüfen, wie folgt:

SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];

Empfohlene verwandte Artikel und Tutorials: MySQL-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der globalen und lokalen Variablen von MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen