Der Server mysql verwaltet eine ganze Reihe
von Systemvariablen, die angeben, wie er konfiguriert ist.
Für alle diese Variablen gibt es Vorgabewerte. Diese können
beim Serverstart über Optionen auf der Befehlszeile oder in
Optionsdateien eingestellt werden. Die meisten Variablen
lassen sich zur Laufzeit des Servers dynamisch mithilfe der
SET
-Anweisung ändern; auf diese Weise
können Sie den Betrieb des Servers beeinflussen, ohne ihn
beenden und neu starten zu müssen. Ferner können Sie die
Werte auch in Ausdrücken verwenden.
Durch Absetzen der SHOW VARIABLES
-Anweisung
können Sie die Namen und Werte der Systemvariablen auflisten
lassen.
Die meisten Systemvariablen werden an dieser Stelle beschrieben. Variablen, bei denen keine Version angegeben ist, sind in allen Releases von MySQL 5.1 vorhanden. Historische Informationen zu ihrer Implementierung finden Sie im MySQL 5.0 Reference Manual und im MySQL-Referenzhandbuch für die Versionen 3.23, 4.0 und 4.1.
Hinweise zur Syntax bei der Einstellung und Anzeige von Werten
von Systemvariablen finden Sie in
Abschnitt 5.2.3, „Verwendung von Server-Systemvariablen“.
Abschnitt 5.2.3.2, „Dynamische Systemvariablen“, listet die
Variablen auf, die zur Laufzeit eingestellt werden können.
Abschnitt 14.2.4, „InnoDB
: Startoptionen und Systemvariablen“, listet
InnoDB
-Systemvariablen auf. Informationen
zur Optimierung der Systemvariablen sind in
Abschnitt 7.5.2, „Serverparameter feineinstellen“, enthalten.
Hinweis: Verschiedene Systemvariablen
lassen sich mit der Anweisung SET
aktivieren, indem sie auf ON
bzw.
1
gesetzt werden. Ähnlich können Sie sie
mit SET
deaktivieren, indem Sie sie auf
OFF
bzw. 0
setzen. Um
solche Variablen über die Befehlszeile oder in Optionsdateien
einstellen zu können, müssen Sie sie auf
1
oder 0
setzen (d. h.
die Einstellungen ON
und
OFF
funktionieren nicht). So führt
beispielsweise auf der Befehlszeile die Option
--delay_key_write=1
zum gewünschten Ergebnis
– anders als --delay_key_write=ON
.
Werte für Puffergrößen, Längen und Stapelgrößen sind in Byte angegeben, sofern nichts anderes festgelegt ist.
auto_increment_increment
auto_increment_increment
und
auto_increment_offset
sind zur
Verwendung bei der Master-to-Master-Replikation vorgesehen
und können zur Steuerung des Betriebs von
AUTO_INCREMENT
-Spalten eingesetzt
werden. Beide Variablen können global oder lokal
eingestellt werden und jeweils einen Integer-Wert zwischen
1 und 65.535 einnehmen. Wenn eine dieser Variablen auf 0
gesetzt wird, wird der Wert automatisch auf 1 umgestellt.
Der Versuch, ihnen einen ganzzahligen Wert größer 65.535
oder kleiner 0 zuzuweisen, führt hingegen zur
automatischen Zuweisung des Wertes 65.535. Sollten Sie
versuchen, auto_increment_increment
oder auto_increment_offset
auf einen
nicht ganzzahligen Wert zu stellen, dann wird eine
Fehlermeldung ausgegeben, und der Wert der Variable bleibt
unverändert.
Diese beiden Variablen beeinflussen das Verhalten von
AUTO_INCREMENT
-Spalten wie folgt:
auto_increment_increment
steuert
das Intervall zwischen aufeinanderfolgenden
Spaltenwerten. Zum Beispiel:
mysql>SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | +--------------------------+-------+ 2 rows in set (0.00 sec) mysql>CREATE TABLE autoinc1
->(col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.04 sec) mysql>SET @@auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec) mysql>SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 10 | | auto_increment_offset | 1 | +--------------------------+-------+ 2 rows in set (0.01 sec) mysql>INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql>SELECT col FROM autoinc1;
+-----+ | col | +-----+ | 1 | | 11 | | 21 | | 31 | +-----+ 4 rows in set (0.00 sec)
(Beachten Sie, wie hier mithilfe von SHOW
VARIABLES
die aktuellen Werte dieser
Variablen ermittelt werden.)
auto_increment_offset
bestimmt den
Startwert der Spalte
AUTO_INCREMENT
. Betrachten Sie
folgendes Beispiel (hier wird davon ausgegangen, dass
diese Anweisungen während derselben Sitzung
ausgeführt werden, bei der auch obiges Beispiel für
auto_increment_increment
erstellt
wurde):
mysql>SET @@auto_increment_offset=5;
Query OK, 0 rows affected (0.00 sec) mysql>SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 10 | | auto_increment_offset | 5 | +--------------------------+-------+ 2 rows in set (0.00 sec) mysql>CREATE TABLE autoinc2
->(col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.06 sec) mysql>INSERT INTO autoinc2 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql>SELECT col FROM autoinc2;
+-----+ | col | +-----+ | 5 | | 15 | | 25 | | 35 | +-----+ 4 rows in set (0.02 sec)
Wenn der Wert von
auto_increment_offset
größer ist
als der von
auto_increment_increment
, dann wird
der Wert von auto_increment_offset
ignoriert.
Sollte eine dieser Variablen (oder beide) geändert werden
und dann neue Datensätze in eine Tabelle mit einer
AUTO_INCREMENT
-Spalte eingefügt
werden, dann könnten die Ergebnisse unlogisch erscheinen,
da die Berechnung der
AUTO_INCREMENT
-Wertereihe ohne
Berücksichtigung ggf. bereits in der Spalte vorhandener
Werte erfolgt und der nächste eingefügte Wert der
kleinste Wert in der Reihe ist, der größer ist als der
größte vorhandene Wert in der
AUTO_INCREMENT
-Spalte. Mit anderen
Worten wird die Reihe so berechnet:
auto_increment_offset +
N
×
auto_increment_increment
Hierbei ist N
ist ein positiver
Integer-Wert in der Reihe [1, 2, 3, ...]. Zum Beispiel:
mysql>SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 10 | | auto_increment_offset | 5 | +--------------------------+-------+ 2 rows in set (0.00 sec) mysql>SELECT col FROM autoinc1;
+-----+ | col | +-----+ | 1 | | 11 | | 21 | | 31 | +-----+ 4 rows in set (0.00 sec) mysql>INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql>SELECT col FROM autoinc1;
+-----+ | col | +-----+ | 1 | | 11 | | 21 | | 31 | | 35 | | 45 | | 55 | | 65 | +-----+ 8 rows in set (0.00 sec)
Die für auto_increment_increment
und
auto_increment_offset
angezeigten Werte
erzeugen die Reihe 5 + N
× 10, also [5, 15, 25, 35, 45, ...]. Der größte
Wert, der vor der INSERT
-Anweisung in
der col
-Spalte vorhanden ist, ist 31.
Der nächste verfügbare Wert in der
AUTO_INCREMENT
-Reihe ist 35, d. h. die
eingefügten Werte für col
beginnen
bei diesem Punkt; die Ergebnisse der
SELECT
-Abfrage sehen also so aus wie
angezeigt.
Es ist wichtig, sich zu vergegenwärtigen, dass es nicht
möglich ist, die Wirkungen dieser zwei Variablen auf eine
einzige Tabelle zu beschränken, weswegen sie nicht die
Funktion von Folgen wahrnehmen, die einige andere
Datenbanksysteme anbieten; die Variablen steuern vielmehr
das Verhalten aller
AUTO_INCREMENT
-Spalten in
allen Tabellen auf dem
MySQL-Server. Wird eine dieser Variablen global
eingestellt, dann wird die Wirkung aufrechterhalten, bis
der globale Wert geändert oder durch eine lokale
Einstellung außer Kraft gesetzt oder
mysqld neu gestartet wird. Bei einer
lokalen Einstellung wirkt sich der neue Wert auf die
AUTO_INCREMENT
in allen Tabellen aus,
in die vom aktuellen Benutzer während der laufenden
Sitzung neue Datensätze eingefügt werden, sofern die
Werte nicht während dieser Sitzung geändert werden.
Der Standardwert von
auto_increment_increment
ist 1. Siehe
auch Abschnitt 6.15, „Auto-Increment in der Multi-Master-Replikation“.
auto_increment_offset
Diese Variable hat den Vorgabewert 1. Besonderheiten
entnehmen Sie der Beschreibung von
auto_increment_increment
.
back_log
Dies ist die Anzahl der ausstehenden
Verbindungsanforderungen, die bei MySQL zulässig sind.
Die Option wird wichtig, wenn der MySQL-Haupt-Thread sehr
viele Verbindungsanforderungen innerhalb kürzester Zeit
erhält. Es dauert dann eine (wenn auch sehr kurze) Zeit,
bis der Haupt-Thread die Verbindung geprüft und einen
neuen Thread gestartet hat. Der Wert
back_log
gibt an, wie viele
Anforderungen während dieser kurzen Zeit gestapelt werden
können, bevor MySQL neue Anforderungen vorübergehend
nicht mehr beantwortet. Sie müssen diesen Wert nur dann
erhöhen, wenn Sie eine hohe Anzahl von Verbindungen
innerhalb kurzer Zeit erwarten.
Anders gesagt bestimmt der Wert die Größe der
Horchwarteschlange für eingehende TCP/IP-Verbindungen.
Ihr Betriebssystem hat eine eigene Begrenzung dieser
Warteschlangengröße. Weitere Informationen hierzu
sollten Sie auf der Manpage zum Unix-Systemaufruf
listen()
finden. Überprüfen Sie Ihre
Betriebssystemdokumentation zu Angaben für den
Maximalwert dieser Variablen. back_log
darf nicht höher gesetzt sein als für das jeweilige
Betriebssystem zulässig.
basedir
Gibt das Basisverzeichnis der MySQL-Installation an. Die
Variable kann mit der Option --basedir
eingestellt werden.
bdb_cache_parts
Die Anzahl der Teile, die für den
BDB
-Cache verwendet werden sollen.
Wurde in MySQL 5.1.2 hinzugefügt.
bdb_cache_size
Die Größe des Puffers, der für das Caching von Indizes
und Datensätzen für BDB
-Tabellen
reserviert wird. Einige Systeme erlauben eine Einstellung
dieser Variablen auf einen Wert von mehr als 4 Gbyte. Wenn
Sie keine BDB
-Tabellen verwenden,
sollten Sie mysqld mit
--skip-bdb
starten, damit für diesen
Cache kein Speicher reserviert wird.
bdb_home
Dies ist das Basisverzeichnis für
BDB
-Tabellen. Hier sollte der gleiche
Wert stehen wie bei der Variablen
datadir
.
bdb_log_buffer_size
Gibt die Größe des Puffers an, der für das Caching von
Indizes und Datensätzen für
BDB
-Tabellen reserviert wird. Wenn Sie
keine BDB
-Tabellen verwenden, sollten
Sie hier 0 zuweisen oder mysqld mit
--skip-bdb
, damit für diesen Cache kein
Speicher reserviert wird.
bdb_logdir
Gibt das Verzeichnis an, in das die
BDB
-Speicher-Engine ihre Logdateien
schreibt. Die Variable kann mit der Option
--bdb-logdir
eingestellt werden.
bdb_max_lock
Die maximale Anzahl von Sperren, die für eine
BDB
-Tabelle aktiv sein können
(standardmäßig 10.000). Sie sollten diesen Wert
erhöhen, wenn bei der Durchführung langer Transaktionen
oder dann, wenn mysqld viele
Datensätze zur Berechnung einer Abfrage untersuchen muss,
die folgende Fehlermeldung auftritt:
bdb: Lock table is out of available locks Got error 12 from ...
bdb_region_size
Die Größe des zugrundeliegenden Logbereichs der
BDB
-Umgebung. Dies ist die Größe des
Speicherpools, der zur Aufzeichnung der in einer
Transaktion verwendeten Dateinamen verwendet wird. Wurde
in MySQL 5.1.2 hinzugefügt.
bdb_shared_data
Ist ON
, wenn Sie Berkeley DB mithilfe
von --bdb-shared-data
im
Multiprozessmodus starten. (Verwenden Sie
DB_PRIVATE
nicht bei der
Initialisierung von Berkeley DB.)
bdb_tmpdir
Gibt das Verzeichnis für
BDB
-Temporärdateien an.
binlog_cache_size
Gibt die Größe des Caches an, der die SQL-Anweisungen
für das Binärlog während einer Transaktion aufnimmt.
Ein Binärlog-Cache wird jedem Client zugewiesen, wenn der
Server transaktionssichere Speicher-Engines unterstützt
und an ihm das Binärlog aktiviert ist (Option
--log-bin
). Wenn Sie häufig
umfangreiche, aus mehreren Anweisungen bestehende
Transaktionen verwenden, können Sie diese Cachegröße
erhöhen, um mehr Leistung zu erzielen. Die
Statusvariablen Binlog_cache_use
und
Binlog_cache_disk_use
können für die
Optimierung dieser Variable nützlich sein. Siehe auch
Abschnitt 5.12.3, „Die binäre Update-Logdatei“.
binlog_format
Das Binärlogformat (entweder STATEMENT
oder ROW
). Diese Variable wird von der
Option --binlog-format
eingestellt. Siehe
auch Abschnitt 6.3, „Zeilenbasierte Replikation“.
bulk_insert_buffer_size
MyISAM
verwendet einen speziellen Cache
mit Baumstruktur, um Masseneinfügeoperation für
INSERT ... SELECT
, INSERT ...
VALUES (...), (...), ...
und LOAD DATA
INFILE
beim Hinzufügen von Daten in nicht leere
Tabellen zu beschleunigen. Diese Variable beschränkt die
Größe der Cachebaumstruktur und ist in Byte pro Thread
angegeben. Die Einstellung 0 deaktiviert diese
Optimierung. Der Vorgabewert ist 8 Mbyte.
character_set_client
Der Zeichensatz für Anweisungen, die vom Client kommend eintreffen.
character_set_connection
Der Zeichensatz für Literale, die keine Zeichensatzeinführung aufweisen, und für die Umwandlung von Zahlen in Strings.
character_set_database
Der von der Standarddatenbank verwendete Zeichensatz. Der
Server stellt diese Variable immer dann ein, wenn die
Standarddatenbank sich ändert. Ist keine
Standarddatenbank vorhanden, dann hat die Variable
denselben Wert wie
character_set_server
.
character_set_filesystem
Der Zeichensatz des Dateisystems. Der Vorgabewert ist
binary
. Diese Variable wurde in MySQL
5.1.6 hinzugefügt.
character_set_results
Der zur Rückgabe von Abfrageergebnissen an den Client verwendete Zeichensatz.
character_set_server
Der Standardzeichensatz des Servers.
character_set_system
Der vom Server zur Speicherung von Bezeichnern verwendete
Zeichensatz. Der Wert ist immer utf8
.
character_sets_dir
Das Verzeichnis, in dem Zeichensätze installiert sind.
collation_connection
Die Sortierung des Verbindungszeichensatzes.
collation_database
Die von der Standarddatenbank verwendete Sortierung. Der
Server stellt diese Variable immer dann ein, wenn die
Standarddatenbank sich ändert. Ist keine
Standarddatenbank vorhanden, dann hat die Variable
denselben Wert wie collation_server
.
collation_server
Die Standardsortierung des Servers.
completion_type
Der Transaktionsabschlusstyp:
Wenn der Wert 0 ist (Standardeinstellung), werden
COMMIT
und
ROLLBACK
nicht beeinflusst.
Ist der Wert 1, dann sind COMMIT
und ROLLBACK
äquivalent zu
COMMIT AND CHAIN
bzw.
ROLLBACK AND CHAIN
. (Eine neue
Transaktion wird mit derselben Isolierungsstufe
gestartet wie die unmittelbar zuvor beendete
Transaktion.)
Ist der Wert 2, dann sind COMMIT
und ROLLBACK
äquivalent zu
COMMIT RELEASE
bzw.
ROLLBACK RELEASE
. (Der Server
trennt die Verbindung nach Abschluss der Transaktion.)
concurrent_insert
Wenn die Variable den Wert ON
hat
(Standardeinstellung), gestattet MySQL die nebenläufige
Ausführung von INSERT
- und
SELECT
-Anweisungen für
MyISAM
-Tabellen, die in der Mitte keine
freien Blöcke aufweisen. Sie können diese Option
deaktivieren, indem Sie mysqld mit
--safe
oder --skip-new
starten.
Diese Variable kann drei ganzzahlige Werte annehmen:
Wert | Beschreibung |
0 | Die Funktion ist deaktiviert. |
1 | Dies ist die Standardeinstellung. Sie aktiviert nebenläufige
Einfügeoperationen für
MyISAM -Tabellen, die keine
Lücken aufweisen. |
2 | Dieser Wert aktiviert nebenläufige Einfügeoperationen für alle
MyISAM -Tabellen. Wenn eine
Tabelle eine Lücke aufweist und gerade von einem
anderen Thread verwendet wird, wird der neue
Datensatz am Tabellenende eingefügt. Wird die
Tabelle gerade nicht verwendet, dann setzt MySQL
eine normale Lesesperre und fügt den neuen
Datensatz in die Lücke ein. |
Siehe auch Abschnitt 7.3.3, „Gleichzeitige Einfügevorgänge“.
Zeit in Sekunden, während der der
mysqld-Server auf ein Verbindungspaket
wartet, bevor er mit der Meldung Bad
handshake
antwortet.
datadir
Das MySQL-Datenverzeichnis. Die Variable kann mit der
Option --datadir
eingestellt werden.
date_format
Diese Variable ist nicht implementiert.
datetime_format
Diese Variable ist nicht implementiert.
default_week_format
Standardmoduswert für die Funktion
WEEK()
. Siehe auch
Abschnitt 12.5, „Datums- und Zeitfunktionen“.
delay_key_write
Diese Option gilt nur für
MyISAM
-Tabellen. Sie kann einen der
folgenden Werte annehmen und beeinflusst hierdurch die
Wirkung der Tabellenoption
DELAY_KEY_WRITE
, die in CREATE
TABLE
-Anweisungen verwendet werden kann.
Option | Beschreibung |
OFF |
DELAY_KEY_WRITE wird ignoriert. |
ON |
MySQL beachtet alle DELAY_KEY_WRITE -Optionen, die in
CREATE TABLE -Anweisungen
angegeben sind. Dies ist der Standardwert. |
ALL |
Alle neu geöffneten Tabellen werden so behandelt, als ob sie mit
aktivierter Option
DELAY_KEY_WRITE erstellt worden
wären. |
Wenn DELAY_KEY_WRITE
für eine Tabelle
aktiviert ist, wird der Schlüsselpuffer der Tabelle nicht
bei jeder Indexaktualisierung, sondern nur dann neu
geschrieben, wenn die Tabelle geschlossen wird. Hierdurch
werden Schreiboperationen für Schlüssel erheblich
beschleunigt. Wenn Sie diese Funktion nutzen, sollten Sie
jedoch eine automatische Überprüfung aller
MyISAM
-Tabellen ergänzen, indem Sie
den Server mit der Option
--myisam-recover
starten (beispielsweise
--myisam-recover=BACKUP,FORCE
). Siehe
auch Abschnitt 5.2.1, „Befehlsoptionen für mysqld“, und
Abschnitt 14.1.1, „MyISAM
-Startoptionen“.
Beachten Sie, dass die Aktivierung der externen Sperrung
mit --external-locking
keinen Schutz
gegen die Beschädigung von Indizes gewährleistet, deren
Tabellen das verzögerte Schreiben von Schlüsseln
verwenden.
delayed_insert_limit
Nach dem Einfügen von mit
delayed_insert_limit
verzögerten
Datensätzen überprüft der Handler INSERT
DELAYED
, ob noch
SELECT
-Anweisungen ausstehen. Ist dies
der Fall, dann gestattet er deren Ausführung, bevor er
mit dem Einfügen verzögerter Datensätze fortfährt.
delayed_insert_timeout
Gibt an, wie viele Sekunden ein INSERT
DELAYED
-Handler auf
INSERT
-Anweisungen warten soll, bevor
er beendet wird.
delayed_queue_size
Dies ist eine tabellenspezifische Beschränkung der Anzahl
von Datensätze, die bei der Verarbeitung von
INSERT DELAYED
-Anweisungen in der
Warteschlange stehen dürfen. Wenn die Warteschlange voll
wird, wartet jeder Client mit dem Absetzen einer
INSERT DELAYED
-Anweisung, bis wieder
Platz in der Warteschlange ist.
div_precision_increment
Diese Variable gibt die Anzahl der Präzisionsstellen an,
um die das Ergebnis von Divisionsoperationen mit dem
Operator /
erweitert werden soll. Der
Standardwert ist 4, der Mindestwert 0 und der Höchstwert
30. Das folgende Beispiel veranschaulicht die Wirkung
einer Erhöhung des Standardwertes.
mysql>SELECT 1/7;
+--------+ | 1/7 | +--------+ | 0.1429 | +--------+ mysql>SET div_precision_increment = 12;
mysql>SELECT 1/7;
+----------------+ | 1/7 | +----------------+ | 0.142857142857 | +----------------+
event_scheduler
Gibt an, ob der Ereignisplaner aktiviert oder deaktiviert ist. Standardmäßig ist der Planer deaktiviert. Diese Variable wurde in MySQL 5.1.6 hinzugefügt.
engine_condition_pushdown
Diese Variable betrifft NDB. Der Standardwert ist 0
(deaktiviert): Wenn Sie eine Abfrage wie SELECT *
FROM t WHERE mycol = 42
ausführen, wobei
mycol
eine nicht indizierte Spalte ist,
dann wird die Abfrage als vollständiger Tabellenscan an
jedem NDB-Knoten durchgeführt. Jeder Knoten sendet jeden
Datensatz an den MySQL-Server, auf dem dann die
WHERE
-Bedingung angewendet wird. Ist
engine_condition_pushdown
auf 1 gesetzt
(aktiviert), dann wird die Bedingung an die
Speicher-Engine „zurückverwiesen“ und an die
NDB-Knoten gesendet. Jeder Knoten führt dann den Scan
unter Anwendung der Bedingung durch und sendet nur
diejenigen Datensätze an den MySQL-Server zurück, bei
denen eine Übereinstimmung vorliegt.
expire_logs_days
Die Anzahl der Tage, nach denen Binärlogs automatisch entfernt werden. Der Standardwert ist 0, d. h. es erfolgt keine automatische Entfernung. Sofern Logs entfernt werden, erfolgt dies beim Start sowie bei der Binärlogrotation.
flush
Wenn aktiviert, schreibt der Server nach jeder
SQL-Anweisung alle Änderungen neu auf die Festplatte
(Synchronisierung). Normalerweise schreibt MySQL alle
Änderungen erst nach der jeweiligen SQL-Anweisung auf die
Festplatte und überlässt dem Betriebssystem die
Festplattensynchronisierung. Siehe auch
Abschnitt A.4.2, „Was zu tun ist, wenn MySQL andauernd abstürzt“. Diese Variable ist aktiviert,
wenn Sie mysqld mit der Option
--flush
starten.
flush_time
Hat diese Variable einen Wert ungleich Null, dann werden
alle Tabellen nach Verstreichen des durch
flush_time
(in Sekunden) angegebenen
Zeitraums geschlossen, um Ressourcen freizugeben und nicht
geschriebene Daten auf die Festplatte zu synchronisieren.
Wir empfehlen die Verwendung dieser Option lediglich unter
Windows 9x/Me und auf Systemen mit nur minimalen
Ressourcen.
ft_boolean_syntax
Die Liste der Operatoren, die bei mit der Option
IN BOOLEAN MODE
durchgeführter
Volltextsuche unterstützt werden. Siehe auch
Abschnitt 12.7.1, „Boolesche Volltextsuche“.
Vorgabe ist '+ -><()~*:""&|'
.
Es gelten folgende Regeln zur Änderung des Wertes:
Die Operatorfunktion wird durch die Position innerhalb des Strings bestimmt.
Der Ersetzungswert muss 14 Zeichen umfassen.
Jedes Zeichen muss ein ASCII-konformes, nicht alphanumerisches Zeichen sein.
Das erste oder zweite Zeichen muss ein Leerzeichen sein.
Mit Ausnahme der Anführungszeichen für Phrasen an den Positionen 11 und 12 sind Duplikate unzulässig. Die beiden Anführungszeichen müssen nicht identisch sein, dürfen es jedoch als einzige.
Die Positionen 10, 13 und 14 (Standardeinstellungen:
‘:
’,
‘&
’ und
‘|
’) sind für
zukünftige Erweiterungen vorgesehen.
ft_max_word_len
Die maximale Länge des Wortes, das in einem
FULLTEXT
-Index enthalten sein darf.
Hinweis: Wenn Sie diese
Variable ändern, müssen Sie
FULLTEXT
-Indizes neu erstellen.
Verwenden Sie REPAIR TABLE
.
tbl_name
QUICK
ft_min_word_len
Die minimale Länge des Wortes, das in einem
FULLTEXT
-Index enthalten sein darf.
Hinweis: Wenn Sie diese
Variable ändern, müssen Sie
FULLTEXT
-Indizes neu erstellen.
Verwenden Sie REPAIR TABLE
.
tbl_name
QUICK
ft_query_expansion_limit
Die Anzahl der obersten zu verwendenden
Übereinstimmungen, die bei einer mit WITH QUERY
EXPANSION
ausgeführten Volltextsuche verwendet
werden.
ft_stopword_file
Datei, aus der die Liste der Stoppwörter für die
Volltextsuche ausgelesen wird. Es werden alle Wörter aus
der Datei verwendet; Kommentare hingegen werden
nicht berücksichtigt.
Standardmäßig wird eine eingebaute Liste mit
Stoppwörtern (wie in der Datei
myisam/ft_static.c
definiert)
verwendet. Wenn Sie die Variable auf den Leer-String
setzen (''
), wird die Ausfilterung von
Stoppwörtern deaktiviert.
Hinweis: Wenn Sie diese
Variable ändern oder den Inhalt der Stoppwortdatei
ändern, müssen die FULLTEXT
-Indizes
neu erstellt werden. Verwenden Sie REPAIR TABLE
.
tbl_name
QUICK
group_concat_max_len
Die maximal zulässige Ergebnislänge der Funktion
GROUP_CONCAT()
. Der Standardwert ist
1.024.
have_archive
YES
, wenn mysqld
ARCHIVE
-Tabellen unterstützt,
andernfalls NO
.
have_bdb
YES
, wenn mysqld
BDB
-Tabellen unterstützt.
DISABLED
, wenn
--skip-bdb
verwendet wird.
have_blackhole_engine
YES
, wenn mysqld
BLACKHOLE
-Tabellen unterstützt,
andernfalls NO
.
have_compress
YES
, wenn die Komprimierungsbibliothek
zlib
auf dem Server verfügbar ist,
andernfalls NO
. In diesem Fall können
die Funktionen COMPRESS()
und
UNCOMPRESS()
nicht verwendet werden.
have_crypt
YES
, wenn der Systemaufruf
crypt()
auf dem Server verfügbar ist,
andernfalls NO
. In diesem Fall kann die
Funktion ENCRYPT()
nicht verwendet
werden.
have_csv
YES
, wenn mysqld
ARCHIVE
-Tabellen unterstützt,
andernfalls NO
.
have_example_engine
YES
, wenn mysqld
EXAMPLE
-Tabellen unterstützt,
andernfalls NO
.
have_federated_engine
YES
, wenn mysqld
FEDERATED
-Tabellen unterstützt,
andernfalls NO
.
have_geometry
YES
, wenn der Server raumbezogene
Datentypen unterstützt, andernfalls
NO
.
have_innodb
YES
, wenn mysqld
InnoDB
-Tabellen unterstützt.
DISABLED
, wenn
--skip-innodb
verwendet wird.
have_isam
In MySQL 5.1 ist diese Variable nur aus
Gründen der Abwärtskompatibilität vorhanden. Sie hat
immer den Wert NO
, da
ISAM
nicht mehr unterstützt werden.
have_ndbcluster
YES
, wenn mysqld
NDB Cluster
-Tabellen unterstützt.
DISABLED
, wenn
--skip-ndbcluster
verwendet wird.
have_partitioning
YES
, wenn mysqld die
Partitionierung unterstützt. Wurde in MySQL 5.1.1 als
have_partition_engine
hinzugefügt und
in 5.1.6 in have_partioning
umbenannt.
have_openssl
YES
, wenn mysqld
eine SSL-Verschlüsselung des Client/Server-Protokolls
unterstützt, andernfalls NO
.
have_query_cache
YES
, wenn mysqld den
Abfrage-Cache unterstützt, andernfalls
NO
.
have_raid
YES
, wenn mysqld die
Option RAID
unterstützt, andernfalls
NO
.
have_row_based_replication
YES
, wenn der Server die Replikation
unter Verwendung datensatzbasierten Binärloggens
durchführen kann. Wenn der Wert NO
ist, kann der Server nur anweisungsbasiertes Loggen
durchführen. Siehe auch
Abschnitt 6.3, „Zeilenbasierte Replikation“. Diese Variable
wurde in MySQL 5.1.5 hinzugefügt.
have_rtree_keys
YES
, wenn
RTREE
-Indizes verfügbar sind,
andernfalls NO
. (Diese werden für
raumbezogene Indizes in MyISAM
-Tabellen
verwendet.)
have_symlink
YES
, wenn die Unterstützung für
symbolische Verknüpfungen aktiviert ist, andernfalls
NO
. Diese ist unter Unix für die
Unterstützung der Tabellenoptionen DATA
DIRECTORY
und INDEX DIRECTORY
und unter Windows für die Unterstützung von symbolischen
Verknüpfungen mit Datenverzeichnissen erforderlich.
init_connect
Ein String, der vom Server immer dann ausgeführt wird,
wenn ein Client eine Verbindung herstellt. Der String
besteht aus einer oder mehreren SQL-Anweisungen. Wenn Sie
mehrere Anweisungen angeben wollen, trennen Sie sie durch
Semikola. So beginnt beispielsweise jeder Client bei einer
Verbindung mit aktiviertem Autocommit-Modus. Es gibt keine
globale Systemvariable, mit der festgelegt werden kann,
dass Autocommit standardmäßig deaktiviert werden soll;
mithilfe von init_connect
aber können
Sie genau dies realisieren:
SET GLOBAL init_connect='SET AUTOCOMMIT=0';
Diese Variable können Sie sowohl über die Befehlszeile als auch in einer Optionsdatei einstellen. Wenn Sie die Variable wie gezeigt in einer Optionsdatei einstellen wollen, ergänzen Sie die folgenden Zeilen:
[mysqld] init_connect='SET AUTOCOMMIT=0'
Beachten Sie, dass der Inhalt von
init_connect
nicht für Benutzer
ausgeführt wird, die die Berechtigung
SUPER
haben. Zweck dieser Maßnahme ist
es zu verhindern, dass ein fehlerhafter Wert für
init_connect
eine Verbindung zum System
für alle Benutzer unmöglich macht. Wenn der Wert etwa
eine Anweisung mit einem Syntaxfehler enthält, dann
könnte dieser dazu führen, dass sich die Clients nicht
mehr anmelden können. Da init_connect
für Benutzer mit der Berechtigung
SUPER
nicht ausgeführt wird, können
diese eine Verbindung herstellen und den Wert von
init_connect
korrigieren.
init_file
Der Name der beim Serverstart mit der Option
--init-file
angegebenen Datei. Es sollte
sich hierbei um eine Datei mit SQL-Anweisungen handeln,
die der Server beim Start ausführen soll. Jede Anweisung
muss in einer eigenen Zeile stehen und darf keine
Kommentare enthalten.
init_slave
Diese Variable ähnelt init_connect
, es
handelt sich hierbei aber um einen String, der von einem
Slave-Server jedes Mal dann ausgeführt wird, wenn der
SQL-Thread startet. Das Format des Strings ist identisch
mit dem der Variable init_connect
.
innodb_
xxx
InnoDB
-Systemvariablen werden in
Abschnitt 14.2.4, „InnoDB
: Startoptionen und Systemvariablen“ beschrieben.
interactive_timeout
Zeit in Sekunden, während der der Server bei einer
interaktiven Verbindung auf Aktivitäten wartet, bevor er
sie schließt. Ein interaktiver Client ist als Client
definiert, der die Option
CLIENT_INTERACTIVE
für
mysql_real_connect()
verwendet. Siehe
auch wait_timeout
.
join_buffer_size
Die Größe des Puffers, der für Joins benutzt wird, die
keine Indizes verwenden und deswegen vollständige
Tabellenscans durchführen. Normalerweise besteht die
beste Möglichkeit der Realisierung schneller Joins darin,
Indizes hinzuzufügen. Erhöhen Sie den Wert von
join_buffer_size
, um einen schnelleren
vollständigen Join zu implementieren, wenn das
Hinzufügen von Indizes nicht möglich ist. Für jeden
vollständigen Join zwischen zwei Tabellen wird ein
Join-Puffer hinzugefügt. Für einen komplexen Join
zwischen mehreren Tabellen, für den Indizes nicht
verwendet werden, sind unter Umständen mehrere
Join-Puffer erforderlich.
Indexblöcke für MyISAM
-Tabellen
werden gepuffert und von allen Threads gemeinsam
verwendet. key_buffer_size
ist die
Größe des für die Indexblöcke verwendeten Puffers. Der
Schlüsselpuffer heißt auch Schlüssel-Cache.
Die maximal zulässige Größe für
key_buffer_size
beträgt 4 Gbyte. Das
effektive Limit kann abhängig davon, wie viel physisches
RAM vorhanden ist und welche RAM-spezifischen Grenzwerte
je Prozess unter Ihrem Betriebssystem bzw. auf Ihrer
Hardwareplattform gelten, niedriger liegen.
Wenn Sie die Indexverwaltung (für Lese- und mehrfachen Schreiboperationen) optimieren wollen, erhöhen Sie diesen Wert so weit wie möglich. Ein Wert von 25 Prozent des gesamten Speichers auf einem System, auf dem hauptsächlich MySQL läuft, ist durchaus normal. Wenn Sie den Wert jedoch zu hoch (beispielsweise auf mehr als 50 Prozent Ihres gesamten Speichers) setzen, wird Ihr System Daten auslagern und so extrem langsam werden. Zur Durchführung des Dateisystem-Cachings für Datenleseoperationen ist MySQL auf das Betriebssystem angewiesen, d. h. Sie müssen ein wenig Platz für den Dateisystem-Cache lassen. Außerdem müssen Sie die Speicheranforderungen anderer Speicher-Engines berücksichtigen.
Um eine noch höhere Geschwindigkeit beim Schreiben vieler
Datensätze zur gleichen Zeit zu erzielen, verwenden Sie
LOCK TABLES
. Siehe auch
Abschnitt 7.2.16, „Geschwindigkeit von INSERT
-Anweisungen“.
Sie können die Leistung des Schlüsselpuffers durch
Absetzen einer SHOW STATUS
-Anweisung
und Überprüfung der Statusvariablen
Key_read_requests
,
Key_reads
,
Key_write_requests
und
Key_writes
verifizieren. (Siehe auch
Abschnitt 13.5.4, „SHOW
“.) Das Verhältnis von
Key_reads
zu
Key_read_requests
sollte möglichst
kleiner als 0,01 sein. Das
Key_writes/Key_write_requests
-Verhältnis
hat normalerweise einen Wert von knapp 1, wenn Sie in
erster Linie Aktualisierungs- und Löschvorgänge
durchführen, kann aber wesentlich kleiner sein, wenn Sie
entweder häufig Updates ausführen, die zahlreiche
Datensätze gleichzeitig betreffen, oder die
Tabellenoption DELAY_KEY_WRITE
verwenden.
Der Anteil des verwendeten Schlüsselpuffers kann mithilfe
von key_buffer_size
in Verbindung mit
der Statusvariablen Key_blocks_unused
und der Pufferblockgröße bestimmt werden, die über die
Systemvariable key_cache_block_size
verfügbar ist:
1 - ((Key_blocks_unused × key_cache_block_size) / key_buffer_size)
Dies ist lediglich ein Näherungswert, weil ein Teil des Schlüsselpuffers möglicherweise intern für Verwaltungsstrukturen reserviert ist.
Sie können mehrere
MyISAM
-Schlüssel-Caches erstellen. Die
Größenbeschränkung von 4 Gbyte gilt für jeden
einzelnen Cache, nicht für die Summe aller Caches. Siehe
auch Abschnitt 7.4.6, „Der MyISAM
-Schlüssel-Cache“.
key_cache_age_threshold
Dieser Wert steuert die Herabstufung von Puffern aus der
heißen Unterkette eines Schlüssel-Caches in eine warme
Unterkette. Niedrige Werte führen dazu, dass diese
Herabstufung schneller erfolgt. Der minimale Wert ist 100,
der Vorgabewert 300. Siehe auch
Abschnitt 7.4.6, „Der MyISAM
-Schlüssel-Cache“.
key_cache_block_size
Größe der Blocks im Schlüssel-Cache in Byte. Der
Standardwert ist 1.024. Siehe auch
Abschnitt 7.4.6, „Der MyISAM
-Schlüssel-Cache“.
key_cache_division_limit
Der Trennpunkt zwischen heißen und warmen Unterketten der
Schlüssel-Cache-Pufferkette. Der Wert gibt den Anteil der
Pufferkette, die für die warme Unterkette benutzt wird,
prozentual an. Der zulässige Wertebereich liegt zwischen
1 und 100, Vorgabewert ist 100. Siehe auch
Abschnitt 7.4.6, „Der MyISAM
-Schlüssel-Cache“.
language
Sprache, in der Fehlermeldungen ausgegeben werden.
large_file_support
Gibt an, ob mysqld mit Optionen zur Unterstützung großer Dateien kompiliert wurde.
large_pages
Gibt an, ob die Unterstützung großer Seiten aktiviert wurde.
license
Der Lizenztyp des Servers.
local_infile
Gibt an, ob LOCAL
für LOAD
DATA INFILE
-Anweisungen unterstützt wird. Siehe
auch Abschnitt 5.7.4, „Sicherheitsprobleme mit LOAD DATA LOCAL
“.
locked_in_memory
Gibt an, ob mysqld mit der Option
--memlock
im Speicher gesperrt wurde.
log
Gibt an, ob das Loggen aller Anweisungen im allgemeinen Abfragelog aktiviert wurde Siehe auch Abschnitt 5.12.2, „Die allgemeine Anfragen-Logdatei“.
log_bin
Gibt an, ob das Binärlog aktiviert wurde. Siehe auch Abschnitt 5.12.3, „Die binäre Update-Logdatei“.
log_bin_trust_function_creators
Diese Variable wird angewendet, wenn das binäre Loggen
aktiviert ist. Sie steuert, ob die Ersteller gespeicherter
Funktionen vertrauenswürdig sind, keine gespeicherten
Funktionen zu erstellen, die das Schreiben unsicherer
Ereignisse in das Binärlog bewirken könnten. Wenn die
Variable den Wert 0 hat (Standardeinstellung), dann
dürfen Benutzer gespeicherte Routinen nur dann erstellen
oder ändern, wenn sie zusätzlich zu den Berechtigungen
CREATE ROUTINE
oder ALTER
ROUTINE
die Berechtigung
SUPER
haben. Die Einstellung 0
implementiert auch eine Beschränkung, dass eine Funktion
mit der Eigenschaft DETERMINISTIC
, der
Eigenschaft READS SQL DATA
oder der
Eigenschaft NO SQL
deklariert werden
muss. Hat die Variable den Wert 1, dann setzt MySQL diese
Beschränkungen bei der Erstellung gespeicherter
Funktionen nicht durch. Siehe auch
Abschnitt 19.4, „Binärloggen gespeicherter Routinen und Trigger“.
log_error
Die Position des Fehlerlogs.
log_slave_updates
Gibt an, ob Updates, die ein Slave-Server von einem Master-Server empfängt, im eigenen Binärlog des Slave-Servers aufgezeichnet werden sollen. Damit diese Variable Wirkung zeigt, muss das binäre Loggen am Slave aktiviert sein. Siehe auch Abschnitt 6.9, „Replikationsoptionen in my.cnf“.
log_slow_queries
Gibt an, ob langsame Abfragen protokolliert werden sollen.
„Langsam“ wird hierbei durch den Wert der
Variable long_query_time
bestimmt.
Siehe auch Abschnitt 5.12.4, „Die Logdatei für langsame Anfragen“.
log_warnings
Gibt an, ob zusätzliche Warnmeldungen erzeugt werden sollen. Die Funktion ist standardmäßig aktiviert. Unterbrochene Verbindungen werden nicht in das Fehlerlog protokolliert, sofern der Wert größer als 1 ist.
long_query_time
Wenn eine Abfrage länger dauert als durch diese Variable
(in Sekunden) angegeben, erhöht der Server die
Statusvariable Slow_queries
entsprechend. Wenn Sie die Option
--log-slow-queries
verwenden, wird die
Abfrage in der Logdatei für langsame Abfragen
protokolliert. Dieser Wert wird als Echtzeit (nicht als
Prozessorzeit) gemessen, d. h. eine Abfrage, die bei
einem System mit geringer Belastung den Schwellwert
unterschreitet, kann bei einem stark belasteten System
bereits darüber liegen. Der Mindestwert ist 1. Siehe auch
Abschnitt 5.12.4, „Die Logdatei für langsame Anfragen“.
low_priority_updates
Wenn diese Variable den Wert 1
hat,
warten alle INSERT
-,
UPDATE
-, DELETE
- und
LOCK TABLE WRITE
-Anweisungen, bis keine
SELECT
- oder LOCK TABLE
READ
-Anweisungen für die betreffende Tabelle
mehr anhängig sind. Diese Variable hieß früher
sql_low_priority_updates
.
lower_case_file_system
Diese Variable beschreibt die Auswirkungen der
Groß-/Kleinschreibung auf dem Dateisystem, auf dem sich
das Datenverzeichnis befindet. OFF
bedeutet, dass die Groß-/Kleinschreibung bei Dateinamen
unterschieden wird, bei ON
ist dies
nicht der Fall.
lower_case_table_names
Hat die Variable den Wert 1, dann werden Tabellennamen in Kleinschreibung auf der Festplatte gespeichert. Vergleiche von Tabellennamen werden dann nicht durch unterschiedliche Groß-/Kleinschreibung beeinträchtigt. Der Wert 2 führt zu einer Speicherung der Tabellennamen in der eingegebenen Form, Vergleiche erfolgen aber stets in Kleinschreibung. Diese Option gilt auch für Datenbanknamen und Tabellenaliase. Siehe auch Abschnitt 9.2.2, „Groß-/Kleinschreibung in Namen“.
Wenn Sie InnoDB
-Tabellen verwenden,
sollten Sie diese Variable auf allen Plattformen auf 1
setzen. Hiermit wird die Konvertierung von Namen in die
Kleinschreibung erzwungen.
Sie sollten diese Variable
keinesfalls auf 0 setzen, wenn Sie
MySQL auf einem System ausführen, bei dem die
Groß-/Kleinschreibung von Dateinamen nicht unterschieden
wird (dies betrifft etwa Windows oder Mac OS X). Wird
diese Variable beim Start nicht eingestellt und
unterscheidet das Dateisystem, auf dem sich das
Datenverzeichnis befindet, keine Groß-/Kleinschreibung
bei Dateinamen, dann stellt MySQL
lower_case_table_names
automatisch auf
2.
max_allowed_packet
Die maximale Größe eines Pakets oder eines erzeugten oder temporären Strings.
Der Paketmeldungspuffer wird mit
net_buffer_length
Bytes initialisiert,
kann aber bei Bedarf auf bis zu
max_allowed_packet
Bytes anwachsen.
Dieser Wert ist standardmäßig niedrig, damit große (und
möglicherweise falsche) Pakete abgefangen werden.
Wenn Sie große BLOB
-Spalten oder lange
Strings verwenden, müssen Sie ihn erhöhen. Es sollte so
groß sein wie das größte BLOB
, das
Sie verwenden wollen. Das Protokolllimit für
max_allowed_packet
beträgt 1Gbyte.
max_binlog_cache_size
Wenn eine Transaktion mit mehreren Anweisungen mehr
Speicher benötigt als hier angegeben, dann erzeugt der
Server die Fehlermeldung Multi-statement
transaction required more than 'max_binlog_cache_size'
bytes of storage
.
max_binlog_size
Wenn eine Schreiboperation in das Binärlog bewirkt, dass die aktuelle Größe der Logdatei den Wert dieser Variable überschreitet, dann führt der Server eine Rotation der Binärlogs durch (d. h. er schließt die aktuelle Datei und öffnet die nächste). Sie können diese Variable nur auf einen Wert im Bereich zwischen 4096 Bytes und 1 Gbyte setzen. Der Vorgabewert ist 1 Gbyte.
Eine Transaktion wird am Stück in das Binärlog
geschrieben, kann also niemals auf mehrere Binärlogs
verteilt werden. Deswegen kann es vorkommen, dass, wenn
Transaktionen sehr groß sind, Binärlogs am Ende größer
sind als mit max_binlog_size
angegeben.
Wenn max_relay_log_size
0 ist, gilt der
Wert von max_binlog_size
auch für
Relay-Logdateien.
max_connect_errors
Wenn die Anzahl unterbrochener Verbindungen zu einem Host
höher liegt als durch diese Variable angegeben, dann
werden weitere Verbindungen für diesen Host gesperrt.
Diese Sperrung von Hosts können Sie mit FLUSH
HOSTS
aufheben.
max_connections
Die zulässige Anzahl nebenläufiger Clientverbindungen.
Wenn Sie diesen Wert erhöhen, erhöht sich auch die
Anzahl der Dateideskriptoren, die
mysqld benötigt. Anmerkungen zu
Grenzwerten für Dateideskriptoren finden Sie in
Abschnitt 7.4.8, „Nachteile der Erzeugung großer Mengen von Tabellen in derselben
Datenbank“. Siehe auch
Abschnitt A.2.6, „Too many connections
-Fehler“.
max_delayed_threads
Maximale Anzahl von Threads, die zur Verarbeitung von
INSERT DELAYED
-Anweisungen gestartet
werden dürfen. Wenn Sie versuchen, Daten in eine neue
Tabelle einzufügen, während alle INSERT
DELAYED
-Threads gerade verwendet werden, dann
wird der Datensatz so eingefügt, als ob das Attribut
DELAYED
nicht angegeben worden wäre.
Wenn Sie hier den Wert 0 angeben, erstellt MySQL in keinem
Fall einen Thread zur Verarbeitung von
DELAYED
-Datensätzen; im Endeffekt
bedeutet dies eine vollständige Deaktivierung von
DELAYED
.
max_error_count
Die maximale Anzahl von Fehlermeldungen, Warnungen und
Hinweisen, die mit SHOW ERRORS
- und
SHOW WARNINGS
-Anweisungen zur Anzeige
gespeichert werden.
max_heap_table_size
Diese Variable bestimmt die maximale Größe, auf die
MEMORY
-Tabellen anwachsen dürfen. Der
Wert der Variable wird zur Berechnung von
MAX_ROWS
-Werte für
MEMORY
-Tabellen verwendet. Die
Einstellung der Variable hat keine Auswirkungen auf
bereits vorhandene MEMORY
-Tabellen,
sofern diese nicht mit einer Anweisung wie CREATE
TABLE
neu erstellt oder mit ALTER
TABLE
oder TRUNCATE TABLE
modifiziert werden.
max_insert_delayed_threads
Diese Variable ist synonym zu
max_delayed_threads
.
max_join_size
Ermöglicht das Unterbinden von
SELECT
-Anweisungen, die unter
Umständen eine größere Anzahl von Datensätzen (bei
Anweisungen für eine Tabelle) oder Datensatzkombinationen
(bei Anweisungen für mehrere Tabellen) untersuchen
müssen als durch max_join_size
angegeben. Ebenfalls unterbunden werden
SELECT
-Anweisungen, bei denen mehr
Festplattenzugriffe erfolgen würden als durch
max_join_size
angegeben. Durch
Einstellen dieses Wertes können Sie
SELECT
-Anweisungen abfangen, bei denen
Schlüssel nicht korrekt verwendet wurden und deren
Verarbeitung wahrscheinlich sehr lange dauern würde.
Nehmen Sie diese Einstellung vor, wenn Ihre Benutzer dazu
neigen, Joins durchzuführen, bei denen entweder eine
WHERE
-Klausel fehlt oder die sehr lange
dauern oder mehrere Millionen Datensätze zurückgeben
könnten.
Wenn Sie die Variable auf einen anderen Wert als
DEFAULT
setzen, wird der Wert von
SQL_BIG_SELECTS
auf
0
zurückgesetzt. Stellen Sie den Wert
von SQL_BIG_SELECTS
erneut ein, dann
wird die Variable max_join_size
ignoriert.
Befindet sich ein Abfrageergebnis im Abfrage-Cache, dann wird keine Überprüfung der Ergebnisgröße durchgeführt, weil das Ergebnis zuvor bereits berechnet wurde und der Server durch den Versand des Ergebnisses nicht belastet würde.
Diese Variable hieß früher
sql_max_join_size
.
max_length_for_sort_data
Die Teilungsgröße bei Indexwerten. Sie bestimmt, welcher
filesort
-Algorithmus verwendet werden
soll. Siehe auch Abschnitt 7.2.12, „ORDER BY
-Optimierung“.
max_relay_log_size
Wenn eine Schreiboperation durch einen Replikations-Slave
in seine Relay-Logdatei bewirkt, dass die aktuelle Größe
der Logdatei den Wert dieser Variable überschreitet, dann
führt der Slave eine Rotation der Relay-Logs durch
(d. h. er schließt die aktuelle Datei und öffnet die
nächste). Wenn max_relay_log_size
0
ist, verwendet der Server
max_binlog_size
sowohl für das Binär-
als auch für das Relay-Log. Ist
max_relay_log_size
größer als 0, dann
wird hierdurch die Größe des Relay-Logs beschränkt.
Dies ermöglicht Ihnen die Konfiguration unterschiedlicher
Größen für die beiden Logdateien. Sie müssen
max_relay_log_size
auf einen Wert
zwischen 4.096 Bytes und 1 Gbyte (jeweils
einschließlich) oder auf 0 setzen. Der Standardwert ist
0. Siehe auch
Abschnitt 6.4, „Replikation: Implementationsdetails“.
max_seeks_for_key
Beschränkt die voraussichtliche Anzahl von
Festplattenzugriffen beim schlüsselbasierten Suchen nach
Datensätzen. Der MySQL-Optimierer geht davon aus, dass
nicht mehr als die hier angegebene Anzahl von
Schlüsselsuchvorgängen bei der Suche nach passenden
Datensätzen in einer Tabelle durch einen Indexscan
erforderlich ist (und zwar unabhängig von der
tatsächlichen Kardinalität des Index; siehe auch
Abschnitt 13.5.4.12, „SHOW INDEX
“). Durch Einstellen eines
niedrigen Wertes (z. B. 100) können Sie MySQL dazu
zwingen, Indizes statt Tabellenscans zu bevorzugen.
max_sort_length
Die bei der Sortierung von BLOB
- oder
TEXT
-Werten zu verwendende Anzahl von
Bytes. Nur die ersten max_sort_length
Bytes jedes Wertes werden berücksichtigt; der Rest wird
ignoriert.
max_tmp_tables
Die maximale Anzahl temporärer Tabellen, die ein Client zur selben Zeit offen halten darf. (Diese Option hat derzeit noch keine Auswirkungen.)
max_user_connections
Die maximale Anzahl gleichzeitiger Verbindungen zu einem gegebenen MySQL-Konto. Der Wert 0 hat die Bedeutung „unbeschränkt“.
Diese Variable hat sowohl einen globalen als auch einen
(schreibgeschützten) sitzungsbezogenen Geltungsbereich.
Die Sitzungsvariable hat denselben Wert wie die globale
Variable, sofern das aktuelle Konto nicht eine
MAX_USER_CONNECTIONS
-Ressourcenbeschränkung
ungleich Null hat. In diesem Fall beschreibt der
Sitzungswert die kontenbezogene Beschränkung.
max_write_lock_count
Nach Verstreichen der hier angegebenen Anzahl von Schreibsperren muss zunächst einmal eine Anzahl anhängiger Anforderungen für Lesesperren verarbeitet werden.
myisam_data_pointer_size
Die Standardgröße (in Byte) des Zeigers, der von
CREATE TABLE
für
MyISAM
-Tabellen verwendet wird, wenn
die Option MAX_ROWS
nicht angegeben
ist. Der Variablenwert muss zwischen 2 und 7 liegen, der
Standardwert ist 6. Siehe auch
Abschnitt A.2.11, „The table is full
-Fehler“.
myisam_max_extra_sort_file_size
(AUSLAUFEND)
Hinweis: Diese Variable wird in MySQL 5.1 nicht unterstützt. Weitere Informationen finden Sie im MySQL 5.0 Reference Manual.
myisam_max_sort_file_size
Die maximale Größe der Temporärdatei, die MySQL bei der
Neuerstellung eines MyISAM
-Indexes (bei
REPAIR TABLE
, ALTER
TABLE
oder LOAD DATA INFILE
)
verwenden darf. Ist die Datei größer als durch diesen
Wert angegeben, dann wird der Index stattdessen unter
Verwendung des Schlüssel-Caches erstellt (was allerdings
langsamer ist). Der Wert wird in Byte angegeben.
myisam_recover_options
Der Wert der Option --myisam-recover
.
Siehe auch Abschnitt 5.2.1, „Befehlsoptionen für mysqld“.
myisam_repair_threads
Wenn dieser Wert größer als 1 ist, werden Indizes von
MyISAM
-Tabellen parallel (d. h. jeder
Index mit einem eigenen Thread) während des Prozesses
Repair by sorting
erstellt. Der
Standardwert ist 1.
Hinweis: Der Code für
die Multithread-Reparatur befindet sich noch im
Betastadium.
myisam_sort_buffer_size
Die Größe des Puffers, der bei der Sortierung von
MyISAM
-Indizes bei Ausführung von
REPAIR TABLE
oder bei der Erstellung
von Indizes mit CREATE INDEX
oder
ALTER TABLE
zugewiesen wird.
myisam_stats_method
Bestimmt, wie der Server NULL
-Werte bei
der Ermittlung von Statistiken zur Verteilung von
Indexwerten bei MyISAM
-Tabellen
behandelt. Für die Variable gibt es zwei mögliche Werte:
nulls_equal
und
nulls_unequal
. Bei
nulls_equal
werden alle
NULL
-Indexwerte als gleichwertig
betrachtet und bilden eine einzelne Wertegruppe, deren
Größe der Anzahl der NULL
-Werte
entspricht. Bei nulls_unequal
hingegen
werden NULL
-Werte nicht als
gleichwertig betrachtet, und jeder
NULL
-Wert bildet eine eigene
Wertegruppe der Größe 1.
Die Methode, mit der Tabellenstatistiken erzeugt werden,
wirkt sich darauf aus, wie der Optimierer Indizes zur
Abfrageausführung auswählt. Eine Beschreibung finden Sie
in Abschnitt 7.4.7, „Sammlung von MyISAM
-Indexstatistiken“.
myisam_use_mmap
Sorgt für die Verwendung der Speicherzuordnung zum Lesen
und Schreiben von MyISAM
-Tabellen.
Diese Variable wurde in MySQL 5.1.4 hinzugefügt.
multi_read_range
Gibt die maximale Anzahl von Bereichen an, die bei der
Bereichsauswahl an eine Speicher-Engine gesendet werden.
Der Standardwert beträgt 256. Das Senden mehrerer
Bereiche an eine Engine ist eine Funktion, die die
Leistung bestimmter Auswahloperationen drastisch
optimieren kann. Dies gilt insbesondere für
NDBCLUSTER
: Diese Engine muss
Bereichsanforderungen an alle Knoten senden, und das
gleichzeitige Senden vieler derartiger Anforderungen
verringert die Kommunikationskosten erheblich.
named_pipe
(Nur für Windows.) Gibt an, ob der Server Verbindungen über Named Pipes unterstützt.
ndb_extra_logging
Diese Variable kann auf einen Wert ungleich Null gesetzt werden, um das zusätzliche NDB-Loggen zu aktivieren. Diese Variable wurde in MySQL 5.1.6 hinzugefügt.
net_buffer_length
Der Kommunikationspuffer wird zwischen SQL-Anweisungen auf
diese Größe zurücksetzt. Der Wert dieser Variable
sollte normalerweise nicht geändert werden. Wenn Sie aber
sehr wenig Speicher haben, können Sie ihn auf die
voraussichtliche Länge der von Clients gesendeten
Anweisungen setzen. Überschreiten Anweisungen diese
Länge, dann wird der Puffer automatisch auf bis zu
max_allowed_packet
Bytes vergrößert.
net_read_timeout
Gibt an (in Sekunden), wie lange auf weitere Daten über
eine Verbindung gewartet wird, bevor die Leseoperation
abgebrochen wird. Dieser Grenzwert gilt nur für
TCP/IP-Verbindungen, nicht jedoch für Verbindungen, die
über Unix-Socketdateien, Named Pipes oder gemeinsamen
Speicher erfolgen. Wenn der Server vom Client liest, gibt
net_read_timeout
den Zeitwert an, mit
dem der Zeitpunkt des Abbruchs gesteuert wird. Wenn der
Server hingegen auf den Client schreibt, gibt
net_write_timeout
den Zeitwert an, mit
dem der Zeitpunkt des Abbruchs gesteuert wird. Siehe auch
slave_net_timeout
.
net_retry_count
Wenn eine Leseoperation an einem Kommunikationsport unterbrochen wird, erfolgt die hier angegebene Anzahl von Wiederverbindungsversuchen, bevor der Vorgang endgültig abgebrochen wird. Bei FreeBSD sollte dieser Wert ziemlich hoch sein, weil interne Interrupts an alle Threads gesendet werden.
net_write_timeout
Gibt an (in Sekunden), wie lange auf das Schreiben eines
Blocks über eine Verbindung gewartet wird, bis die
Schreiboperation abgebrochen wird. Dieser Grenzwert gilt
nur für TCP/IP-Verbindungen, nicht jedoch für
Verbindungen, die über Unix-Socketdateien, Named Pipes
oder gemeinsamen Speicher erfolgen. Siehe auch
net_read_timeout
.
new
Diese Variable wurde in MySQL 4.0 verwendet, um bestimmte
Verhaltensweisen von Version 4.1 zu aktivieren. Sie ist
aus Gründen der Abwärtskompatibilität noch vorhanden.
In MySQL 5.1 ist der Wert immer
OFF
.
old_passwords
Gibt an, ob der Server Passwörter im vor Version 4.1
verwendeten Stil benutzen soll. Siehe auch
Abschnitt A.2.3, „Client does not support authentication protocol
“.
one_shot
Dies ist keine Variable, kann aber zur Einstellung einiger
Variablen verwendet werden. Eine Beschreibung finden Sie
in Abschnitt 13.5.3, „SET
“.
open_files_limit
Die Anzahl der Dateien, die mysqld nach
Maßgabe des Betriebssystems öffnen darf. Dies ist der
wirkliche, vom System gestattete Wert; er kann sich von
dem Wert unterscheiden, den Sie mithilfe der Option
--open-files-limit
an
mysqld bzw.
mysqld_safe übergeben haben. Auf
Systemen, bei denen MySQL die Anzahl offener Dateien nicht
ändern kann, ist der Wert 0.
optimizer_prune_level
Steuert die bei der Abfrageoptimierung angewendete Heuristik, um den Suchraum des Optimierers von wenig vielversprechenden Teilplänen zu säubern. Der Wert 0 deaktiviert die Heuristik, d. h. der Optimierer führt eine erschöpfende Suche durch. Der Wert 1 hingegen sorgt dafür, dass der Optimierer Pläne basierend auf der Anzahl der von temporären Plänen abgerufenen Datensätze entfernt.
optimizer_search_depth
Die maximale Tiefe der vom Abfrageoptimierer durchgeführten Suche. Werte, die größer sind als die Anzahl der Beziehungen in einer Abfrage, führen zu besseren Abfrageplänen, benötigen aber mehr Zeit zur Erzeugung eines Ausführungsplans für eine Abfrage. Bei Werten hingegen, die kleiner sind als die Anzahl der Beziehungen in einer Abfrage, wird der Ausführungsplan schneller zurückgegeben; allerdings ist der zurückgegebene Plan unter Umständen weit davon entfernt, optimal zu sein. Wenn der Wert 0 gewählt wird, wählt das System automatisch einen sinnvollen Wert aus. Wird ein Wert zugewiesen, der der maximalen Anzahl der in einer Abfrage verwendeten Tabelle plus 2 entspricht, dann verwendet der Optimierer zur Durchführung von Suchvorgängen den in MySQL 5.0.0 (und vorher) verwendeten Algorithmus.
pid_file
Der Pfadname der Prozesskennungsdatei. Die Variable kann
mit der Option --pid-file
eingestellt
werden.
plugin_dir
Der Pfadname des Plug-In-Verzeichnisses. Diese Variable wurde in MySQL 5.1.2 hinzugefügt.
port
Die Nummer des Ports, auf dem der Server nach
TCP/IP-Verbindungen horcht. Die Variable kann mit der
Option --port
eingestellt werden.
preload_buffer_size
Die Größe des Puffers, der beim Vorabladen von Indizes reserviert wird.
protocol_version
Die Version des vom MySQL-Server verwendeten Client/Server-Protokolls.
query_alloc_block_size
Die Zuweisungsgröße von Speicherblöcken, die für Objekte reserviert sind, welche während der Verarbeitung und Ausführung von Anweisungen erstellt werden. Wenn Sie Probleme mit der Speicherfragmentierung haben, kann es hilfreich sein, diesen Wert ein wenig zu erhöhen.
query_cache_limit
Es werden nur Ergebnisse zwischengespeichert, die nicht größer sind als die hier angegebene Anzahl von Bytes. Der Vorgabewert ist 1 Mbyte.
query_cache_min_res_unit
Die Mindestgröße (in Byte) für Blöcke, die vom Abfrage-Cache reserviert wurden. Der Vorgabewert ist 4.096 (4 Kbyte). Informationen zur Optimierung dieser Variable finden Sie in Abschnitt 5.14.3, „Konfiguration des Anfragen-Cache“.
query_cache_size
Die Menge des Speichers, der zur Zwischenspeicherung von
Abfrageergebnissen reserviert wird. Der Standardwert ist
0, d. h. der Abfrage-Cache ist deaktiviert. Beachten Sie,
dass die hier angegebene Speichermenge auch dann
reserviert wird, wenn query_cache_type
den Wert 0 hat. Weitere Informationen finden Sie in
Abschnitt 5.14.3, „Konfiguration des Anfragen-Cache“.
query_cache_type
Bestimmt den Typ des Abfrage-Caches. Die Einstellung des
GLOBAL
-Wertes legt den Typ für alle
Clients fest, die sich nachfolgend anmelden. Einzelne
Clients können den SESSION
-Wert
einstellen, um die eigene Verwendung des Abfrage-Caches zu
beeinflussen. Die zulässigen Werte entnehmen Sie
folgender Tabelle:
Option | Beschreibung |
0 oder OFF
|
Ergebnisse werden nicht zwischengespeichert oder abgerufen. Beachten
Sie, dass die Reservierung des Puffers für den
Abfrage-Cache hierdurch nicht aufgehoben wird. Zu
diesem Zweck müssen Sie
query_cache_size auf 0 setzen. |
1 oder ON
|
Legt alle Abfrageergebnisse mit Ausnahme derjenigen, die mit
SELECT SQL_NO_CACHE beginnen,
im Cache ab. |
2 oder DEMAND
|
Zwischengespeichert werden nur die Ergebnisse der Abfragen, die mit
SELECT SQL_CACHE beginnen. |
Diese Variable hat den Standardwert ON
.
query_cache_wlock_invalidate
Wenn ein Client eine Schreibsperre auf eine
MyISAM
-Tabelle erwirkt, dann wird das
Absetzen von Anweisungen anderer Clients, die aus dieser
Tabelle lesen, normalerweise nicht unterbunden, wenn die
Abfrageergebnisse im Abfrage-Cache vorhanden sind. Wenn
Sie diese Variable auf 1 setzen, werden bei vorhandener
Schreibsperre für eine Tabelle alle Abfragen im
Abfrage-Cache, die auf diese Tabelle verweisen, ungültig.
Hierdurch sind andere Clients, die auf diese Tabelle
zugreifen wollen, zum Warten gezwungen, bis die Sperre
aufgehoben wird.
query_prealloc_size
Die Größe des Permanentpuffers, der zur Abarbeitung und
Ausführung von Anweisungen verwendet wird. Dieser Puffer
wird zwischen den Anweisungen nicht geleert. Wenn Sie
komplexe Abfragen ausführen, kann ein höherer Wert für
query_prealloc_size
die Leistung
optimieren, weil er dafür sorgt, dass der Server während
der Abfrageausführung weniger Speicherreservierungen
vornehmen muss.
range_alloc_block_size
Die Größe der Blöcke, die bei der Bereichsoptimierung reserviert werden.
read_buffer_size
Jeder Thread, der einen sequenziellen Scan durchführt, reserviert einen Puffer dieser Größe (in Byte) pro gescannter Tabelle. Wenn Sie mehrere sequenzielle Scans durchführen, sollten Sie den Wert erhöhen. Standardmäßig steht er bei 131.072.
read_only
Wenn die Variable für einen Replikations-Slave-Server auf
ON
gesetzt ist, gestattet der Slave
Updates lediglich von Slave-Threads oder von Benutzern,
die die Berechtigung SUPER
haben. Dies
kann sinnvoll sein, um sicherzustellen, dass ein
Slave-Server Updates nur von seinem Master-Server und
nicht von Clients akzeptiert. Diese Variable gilt nicht
für TEMPORARY
-Tabellen.
relay_log_purge
Aktiviert oder deaktiviert das automatische Säubern von
Relay-Logdateien, sobald diese nicht mehr benötigt
werden. Der Vorgabewert ist 1 (ON
).
read_rnd_buffer_size
Beim Lesen von Datensätzen in sortierter Reihenfolge (auf
einen Schlüsselsortiervorgang folgend) werden die
Datensätze über diesen Puffer gelesen, um
Festplattenzugriffe zu vermeiden. Das Setzen dieser
Variable auf einen hohen Wert kann die Leistung von
ORDER BY
erheblich verbessern.
Allerdings ist dies ein Puffer, der je Client zugewiesen
wird. Deswegen sollten Sie die globale Variable nicht auf
einen hohen Wert setzen. Ändern Sie stattdessen die
Sitzungsvariablen nur bei den Clients, die große Abfragen
ausführen müssen.
secure_auth
Wenn der MySQL-Server mit der Option
--secure-auth
gestartet wurde, sperrt er
Verbindungen aller Konten, deren Passwörter im alten
(d. h. vor Version 4.1 gültigen) Format gespeichert
sind. In diesem Fall ist der Wert dieser Variable
ON
, andernfalls OFF
.
Sie sollten diese Option aktivieren, wenn Sie die Verwendung von Passwörtern im alten Format (und damit eine unsichere Kommunikation über das Netzwerk) generell unterbinden wollen.
Der Serverstart schlägt mit einer Fehlermeldung fehl,
wenn diese Option aktiviert ist, die Berechtigungstabellen
jedoch das alte Format verwenden. Siehe auch
Abschnitt A.2.3, „Client does not support authentication protocol
“.
server_id
Die Serverkennung. Der Wert wird mit der Option
--server-id
eingestellt. Er erlaubt im
Rahmen der Replikation die eindeutige Identifizierung von
Master- und Slave-Servern.
shared_memory
(Nur für Windows.) Gibt an, ob der Server Verbindungen mit gemeinsamem Speicher gestattet.
shared_memory_base_name
(Nur für Windows.) Der Name des gemeinsamen Speichers,
der für Verbindungen mit gemeinsamem Speicher verwendet
werden soll. Dies ist praktisch, wenn Sie mehrere
MySQL-Instanzen auf einem einzelnen physischen Computer
ausführen. Der Standardname ist MYSQL
.
Beim Namen wird die Groß-/Kleinschreibung unterschieden.
Hat den Wert OFF
, wenn
mysqld die externe Sperrung verwendet,
bzw. ON
, wenn die externe Sperrung
deaktiviert ist.
skip_networking
Diese Variable hat den Wert ON
, wenn
der Server nur lokale Verbindungen
(Nicht-TCP/IP-Verbindungen) zulässt. Unter Unix verwenden
lokale Verbindungen eine Unix-Socketdatei. Unter Windows
nutzen lokale Verbindungen eine Named Pipe oder
gemeinsamen Speicher. Unter NetWare werden nur
TCP/IP-Verbindungen unterstützt; hier dürfen Sie diese
Variable nicht auf ON
setzen. Die
Variable kann mit der Option
--skip-networking
auf
ON
gesetzt werden.
skip_show_database
Diese Variable verhindert, dass Benutzer die Anweisung
SHOW DATABASES
verwenden, wenn sie die
Berechtigung SHOW DATABASES
nicht
haben. Dies kann die Sicherheit erhöhen, wenn Sie es für
unerwünscht halten, dass Benutzer Datenbanken sehen
können, die anderen Benutzern gehören. Die Wirkung der
Variable hängt von der Berechtigung SHOW
DATABASES
ab: Wenn der Variablenwert
ON
ist, darf die SHOW
DATABASES
-Anweisung nur von Benutzern verwendet
werden, die die Berechtigung SHOW
DATABASES
haben. Die Anweisung zeigt dann alle
Datenbanknamen an. Ist der Wert hingegen
OFF
, dann dürfen alle Benutzer
SHOW DATABASES
absetzen; angezeigt
werden in diesem Fall aber nur diejenigen Datenbanken,
für die der jeweilige Benutzer die Berechtigung
SHOW DATABASES
oder eine ähnliche
Berechtigung hat.
slave_compressed_protocol
Gibt an, ob eine Komprimierung des Slave/Master-Protokolls verwendet werden soll, wenn sowohl Slave als auch Master diese unterstützen.
slave_load_tmpdir
Der Name des Verzeichnisses, in dem der Slave
Temporärdateien zur Replikation von LOAD DATA
INFILE
-Anweisungen erstellt.
slave_net_timeout
Gibt an (in Sekunden), wie lange auf weitere Daten über eine Master/Slave-Verbindung gewartet wird, bevor die Leseoperation abgebrochen wird. Dieser Grenzwert gilt nur für TCP/IP-Verbindungen, nicht jedoch für Verbindungen, die über Unix-Socketdateien, Named Pipes oder gemeinsamen Speicher erfolgen.
slave_skip_errors
Anzahl der Replikationsfehler, die der Slave übergehen (d. h. ignorieren) soll.
slave_transaction_retries
Wenn ein SQL-Thread auf einem Replikations-Slave eine
Transaktion nicht ausführen kann, weil eine
InnoDB
-Blockade aufgetreten ist oder
die Werte innodb_lock_wait_timeout
von
InnoDB
bzw.
TransactionDeadlockDetectionTimeout
oder TransactionInactiveTimeout
von
NDBCluster überschritten wurden, erfolgt die durch
slave_transaction_retries
angegebene
Anzahl von Neuversuchen, bevor der Vorgang mit einer
Fehlermeldung beendet wird. Der Vorgabewert ist 10.
slow_launch_time
Wenn die Erstellung eines Threads länger dauert als durch
diese Variable (in Sekunden) angegeben, dann erhöht der
Server den Wert der Statusvariablen
Slow_launch_threads
entsprechend.
socket
Auf Unix-Plattformen bezeichnet diese Variable den Namen
der Socketdatei, die für lokale Clientverbindungen
verwendet wird. Der Vorgabewert ist
/tmp/mysql.sock
. (Bei einigen
Distributionsformaten kann das Verzeichnis anders
aussehen, z. B. /var/lib/mysql
bei
RPMs.)
Unter Windows bezeichnet diese Variable den Namen der
Named Pipe, die für lokale Clientverbindungen verwendet
wird. Der Vorgabewert ist MySQL
(keine
Unterscheidung der Groß-/Kleinschreibung).
sort_buffer_size
Jeder Thread, der eine Sortierung durchführen muss,
reserviert einen Puffer dieser Größe. Erhöhen Sie den
Wert, um ORDER BY
- oder GROUP
BY
-Operationen zu beschleunigen. Siehe auch
Abschnitt A.4.4, „Wohin MySQL temporäre Dateien speichert“.
sql_mode
Der aktuelle SQL-Modus des Servers. Dieser kann dynamisch eingestellt werden. Siehe auch Abschnitt 5.2.5, „Der SQL-Modus des Servers“.
sql_slave_skip_counter
Die Anzahl der vom Master kommenden Ereignisse, die ein
Slave-Server übergehen soll. Siehe auch
Abschnitt 13.6.2.6, „SET GLOBAL SQL_SLAVE_SKIP_COUNTER
“.
storage_engine
Die vorgabeseitige Speicher-Engine (Tabellentyp). Um die
Speicher-Engine beim Serverstart einzustellen, verwenden
Sie die Option --default-storage-engine
.
Siehe auch Abschnitt 5.2.1, „Befehlsoptionen für mysqld“.
sync_binlog
Ist der Wert dieser Variable positiv, dann synchronisiert
der MySQL-Server sein Binärlog jedes Mal auf die
Festplatte (unter Verwendung von
fdatasync()
), wenn
sync_binlog
in das Binärlog
geschrieben wird. Beachten Sie, dass, wenn der
Autocommit-Modus aktiviert ist, eine Schreiboperation pro
Anweisung im Binärlog gespeichert wird; andernfalls
handelt es sich um eine Schreiboperation je Transaktion.
Der Standardwert ist 0, d. h. es wird keine
Synchronisierung auf Festplatte durchgeführt. Der Wert 1
ist die sicherste Variante, denn im Falle eines Absturzes
verlieren Sie maximal eine Anweisung bzw. eine Transaktion
aus dem Binärlog. Allerdings ist diese Methode auch die
langsamste (sofern die Festplatte nicht über einen
batteriegestützten Cache verfügt, der die
Synchronisierung extrem beschleunigt).
Ist der Wert von sync_binlog
0
(Standardeinstellung), dann erfolgt kein zusätzliches
Schreiben auf die Festplatte. Der Server ist wie bei jeder
anderen Datei auch auf das Betriebssystem angewiesen, um
den Dateiinhalt regelmäßig auf die Festplatte schreiben
zu können.
sync_frm
Wenn diese Variable auf 1 gesetzt ist, wird, wenn eine
nichttemporäre Tabelle erstellt wird, deren
.frm
-Datei auf Festplatte
synchronisiert (dies geschieht mithilfe von
fdatasync()
). Dies ist zwar langsamer,
im Falle eines Absturzes aber sicherer. Der Standardwert
ist 1.
system_time_zone
Die Systemzeitzone des Servers. Wenn die Serverausführung
startet, erbt sie eine Zeitzoneneinstellung von den
Standardwerten des Computers, welche unter Umständen von
der Umgebung des Kontos modifiziert wird, welches zur
Ausführung des Servers oder Startskripts verwendet wird.
Der Wert wird verwendet, um
system_time_zone
einzustellen.
Normalerweise wird die Zeitzone durch die
Umgebungsvariable TZ
festgelegt. Eine
Definition kann aber auch mithilfe der Option
--timezone
des Skripts
mysqld_safe erfolgen.
Die Variable system_time_zone
unterscheidet sich von time_zone
. Zwar
können diese beiden Variablen denselben Wert haben,
letztere wird aber zur Initialisierung der Zeitzone für
die Clients verwendet, die eine Verbindung herstellen.
Siehe auch Abschnitt 5.11.8, „Zeitzonen-Unterstützung des MySQL-Servers“.
table_cache
Dies ist der alte Name von
table_open_cache
, der vor MySQL 5.1.3
verwendet wurde. Verwenden Sie ab MySQL 5.1.3 stattdessen
table_open_cache
.
table_definition_cache
Die Anzahl der Tabellendefinitionen, die im Definitions-Cache gespeichert werden können. Wenn Sie eine hohe Anzahl von Tabellen verwenden, können Sie einen großen Tabellendefinitions-Cache erstellen, um das Öffnen von Tabellen zu beschleunigen. Der Tabellendefinitions-Cache benötigt weniger Platz als der normale Tabellen-Cache und verwendet anders als jener keine Dateideskriptoren. Diese Variable wurde in MySQL 5.1.3 hinzugefügt.
table_open_cache
Die Anzahl offener Tabellen für alle Threads. Wenn Sie
diesen Wert erhöhen, erhöht sich auch die Anzahl der
Dateideskriptoren, die mysqld
benötigt. Wenn Sie überprüfen wollen, ob Sie den
Tabellen-Cache vergrößern müssen, kontrollieren Sie die
Statusvariable Opened_tables
. Siehe
auch Abschnitt 5.2.4, „Server-Statusvariablen“. Wenn der
Wert von Opened_tables
sehr groß ist
und Sie FLUSH TABLES
nicht sehr häufig
verwenden (was nichts anderes tut, als alle Tabellen zu
schließen und neu zu öffnen), dann sollten Sie den Wert
von table_open_cache
erhöhen. Weitere
Informationen zum Tabellen-Cache finden Sie unter
Abschnitt 7.4.8, „Nachteile der Erzeugung großer Mengen von Tabellen in derselben
Datenbank“. Vor MySQL 5.1.3 hieß diese
Variable table_cache
.
table_type
Diese Variable ist synonym zu
storage_engine
. Bei MySQL
5.1 ist storage_engine
der
bevorzugte Name.
thread_cache_size
Gibt an, wie viele Threads der Server zur Neuverwendung
zwischenspeichern soll. Wenn ein Client seine Verbindung
trennt, dann werden die Threads dieses Clients im Cache
abgelegt, sofern die Anzahl der dort vorhandenen Threads
geringer als thread_cache_size
ist.
Thread-Anforderungen werden erfüllt, indem, sofern
möglich, Threads aus dem Cache neu verwendet werden; neue
Threads werden nur erstellt, wenn der Cache leer ist. Der
Wert dieser Variablen kann erhöht werden, um die Leistung
zu optimieren, wenn viele neue Verbindungen auftreten.
(Bei einer guten Thread-Implementierung werden Sie
normalerweise jedoch keine spürbare Leistungsverbesserung
bemerken.) Durch Überprüfung der Differenz zwischen den
Statusvariablen Connections
und
Threads_created
können Sie die
Wirksamkeit des Thread-Caches kontrollieren. Detaillierte
Informationen finden Sie in
Abschnitt 5.2.4, „Server-Statusvariablen“.
thread_concurrency
Unter Solaris ruft mysqld
thr_setconcurrency()
mit diesem Wert
auf. Diese Funktionen erlaubt es Anwendungen, dem
Thread-System Hinweise zur gewünschten Anzahl der
gleichzeitig ausgeführten Threads zukommen zu lassen.
thread_stack
Die Stapelgröße für jeden Thread. Viele der vom
crash-me
-Test erkannten
Einschränkungen hängen von diesem Wert ab. Der
Standardwert ist für den normalen Betrieb ausreichend
groß. Siehe auch Abschnitt 7.1.4, „Die MySQL-Benchmark-Reihe“.
Standardwert ist 192 Kbyte.
time_format
Diese Variable ist nicht implementiert.
time_zone
Die aktuelle Zeitzone. Diese Variable wird zur
Initialisierung der Zeitzone für die Clients verwendet,
die eine Verbindung herstellen. Standardmäßig ist der
Ausgangswert 'SYSTEM'
(mit der
Bedeutung „Den Wert von
system_time_zone
verwenden“).
Der Wert kann beim Serverstart mit der Option
--default-time-zone
explizit angegeben
werden. Siehe auch Abschnitt 5.11.8, „Zeitzonen-Unterstützung des MySQL-Servers“.
tmp_table_size
Wenn eine temporäre Tabelle im Arbeitsspeicher diese
Größe überschreitet, wandelt MySQL sie automatisch in
eine MyISAM
-Tabelle auf der Festplatte
um. Erhöhen Sie den Wert von
tmp_table_size
, wenn Sie viele
erweiterte GROUP BY
-Abfragen ausführen
und viel Speicher haben.
tmpdir
Das für Temporärdateien und Temporärtabellen verwendete
Verzeichnis. Dieser Variable kann eine Liste mit mehreren
verschiedenen Pfaden zugewiesen werden, die zyklisch
abwechselnd verwendet werden. Die Pfade sollten unter Unix
mit Doppelpunkten (‘:
’) und
unter Windows, NetWare und OS/2 mit Semikola
(‘;
’) voneinander getrennt
werden.
Diese Multiverzeichnisfunktion kann verwendet werden, um
die Last auf mehrere physische Festplatten zu verteilen.
Wenn der MySQL-Server als Replikations-Slave agiert,
sollten Sie tmpdir
nicht auf ein
Verzeichnis auf einem speicherbasierten Dateisystem oder
ein Verzeichnis verweisen lassen, das gelöscht wird, wenn
der Server neu startet. Ein Replikations-Slave benötigt
einen Teil seiner Temporärdateien, um einen
Systemneustart so zu überstehen, dass er
Temporärtabellen oder LOAD DATA
INFILE
-Operationen replizieren kann. Wenn
Dateien im Verzeichnis für Temporärdateien beim
Serverneustart verloren gehen, schlägt die Replikation
fehl. Wenn Sie allerdings MySQL 4.0.0 oder höher
verwenden, können Sie das Temporärverzeichnis des Slaves
mithilfe der Variable slave_load_tmpdir
einstellen. In diesem Fall wird der Slave den globalen
Wert von tmpdir
nicht verwenden, und
Sie können tmpdir
auch auf eine
nichtpermanente Position verweisen lassen.
transaction_alloc_block_size
Die Menge an Bytes, um die ein Speicherpool für eine
Transaktion erhöht wird, für die Speicher benötigt
wird. Siehe auch die Beschreibung zu
transaction_prealloc_size
.
transaction_prealloc_size
Es gibt für jede Transaktion einen Speicherpool, aus dem
verschiedene transaktionsbezogene Reservierungen Speicher
entnehmen. Die Ausgangsgröße dieses Pools entspricht der
Anzahl von Bytes, die durch
transaction_prealloc_size
angegeben
ist. Für jede Reservierung, die aus dem Pool nicht
erfüllt werden kann, da zu wenig Speicher verfügbar ist,
wird der Pool um die Anzahl von Bytes erhöht, die durch
transaction_alloc_block_size
angegeben
ist. Sobald die Transaktion endet, wird der Pool wieder um
die durch transaction_prealloc_size
angegebene Anzahl von Bytes verringert.
Wenn Sie dafür Sorge tragen, dass
transaction_prealloc_size
groß genug
ist, um alle Anweisungen einer einzelnen Transaktion
aufzunehmen, können Sie viele
malloc()
-Aufrufe vermeiden.
tx_isolation
Die Standardstufe für die Transaktionsisolierung. Der
Vorgabewert ist REPEATABLE-READ
.
Diese Variable wird durch die SET TRANSACTION
ISOLATION LEVEL
-Anweisung eingestellt. Siehe
auch Abschnitt 13.4.6, „SET TRANSACTION
“. Wenn Sie
tx_isolation
direkt auf einen
Isolierungsstufennamen setzen, der ein Leerzeichen
enthält, dann sollte der Name in Anführungszeichen
gesetzt und das Leerzeichen durch einen Bindestrich
ersetzt werden. Zum Beispiel:
SET tx_isolation = 'READ-COMMITTED';
updatable_views_with_limit
Diese Variable steuert, ob Updates unter Verwendung einer
View vorgenommen werden können, die keinen
Primärschlüssel in der zugrundeliegenden Tabelle
enthält, wenn das Update eine
LIMIT
-Klausel enthält. (Derartige
Updates werden häufig von GUI-Tools erzeugt.) Ein Update
ist eine UPDATE
- oder
DELETE
-Anweisung. Unter dem
Primärschlüssel versteht man hier einen PRIMARY
KEY
- oder einen UNIQUE
-Index,
bei dem keine Spalte NULL
enthalten
kann.
Die Variable kann zwei Werte haben:
1
oder YES
: Es
wird nur eine Warnung (d. h. keine Fehlermeldung)
ausgegeben. Dies ist der Standardwert.
0
oder NO
: Das
Update wird untersagt.
version
Die Versionsnummer des Servers.
version_bdb
Die Version der BDB
-Speicher-Engine.
version_comment
Das Skript configure umfasst eine
Option --with-comment
, die die Angabe
eines Kommentars bei der Erstellung von MySQL erlaubt.
Diese Variable enthält den Wert dieses Kommentars.
version_compile_machine
Der Typ des Computers oder der Architektur, auf der MySQL erstellt wurde.
version_compile_os
Der Typ des Betriebssystem, auf der MySQL erstellt wurde.
wait_timeout
Zeit (in Sekunden), während der der Server bei einer nichtinteraktiven Verbindung auf Aktivitäten wartet, bevor er sie schließt. Dieser Grenzwert gilt nur für TCP/IP-Verbindungen, nicht jedoch für Verbindungen, die über Unix-Socketdateien, Named Pipes oder gemeinsamen Speicher erfolgen.
Beim Thread-Start wird der Sitzungswert
wait_timeout
auf der Basis des globalen
Wertes wait_timeout
oder des globalen
Wertes interactive_timeout
initialisiert. Welcher Wert verwendet wird, hängt vom
Clienttyp (entsprechend der Definition durch die
Verbindungsoption CLIENT_INTERACTIVE
von mysql_real_connect()
) ab. Siehe
auch interactive_timeout
.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.