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.
