Heim  >  Artikel  >  Datenbank  >  Detaillierte Einführung in MySQL-Konfigurationsparameter

Detaillierte Einführung in MySQL-Konfigurationsparameter

不言
不言nach vorne
2019-02-14 13:36:422232Durchsuche

Dieser Artikel bietet Ihnen eine detaillierte Einführung in die MySQL-Konfigurationsparameter. Ich hoffe, dass er für Freunde hilfreich ist.

# Die folgenden Optionen werden von der MySQL-Clientanwendung gelesen.

# Beachten Sie, dass garantiert nur die Client-Anwendung, die mit MySQL geliefert wird, diesen Inhalt lesen kann.

# Wenn Sie diese Werte in Ihrer eigenen MySQL-Anwendung erhalten möchten.

# Diese Optionen müssen angegeben werden, wenn die MySQL-Clientbibliothek initialisiert wird.

#

[Client]

#password = [Ihr_Passwort]

port = @MYSQL_TCP_PORT@

socket = @MYSQL_UNIX_ADDR@

# *** Anwendungsanpassungsoptionen ***

#

# MySQL-Server

#

[mysqld]

# Allgemeine Konfigurationsoptionen

port = @MYSQL_TCP_PORT@

socket = @MYSQL_UNIX_ADDR@

# back_log ist die Nummer, die das Betriebssystem in der Überwachungswarteschlange verwalten kann Anzahl der Verbindungen,

# Die Warteschlange speichert die Verbindungen, bevor sie vom MySQL-Verbindungsmanager-Thread verarbeitet werden

# Wenn Sie eine sehr hohe Verbindungsrate haben und ein Fehler „Verbindung abgelehnt“ auftritt,

# Sie sollten den Wert hier erhöhen

# Überprüfen Sie die Dokumentation Ihres Betriebssystems, um den Maximalwert dieser Variablen zu erhalten.

# Wenn Sie back_log auf einen höheren Wert setzen Ihr Betrieb. Höhere Systemgrenzwerte haben keine Auswirkung.

back_log = 300

# Nicht auf dem TCP/IP-Port überwachen.

# Wenn alle Prozesse eingeschaltet sind Derselbe Server ist mit dem lokalen MySQL verbunden,

# Diese Einstellung dient zur Erhöhung der Sicherheit

# Alle MySQL-Verbindungen erfolgen über Unix-Sockets oder Named Pipes.

# Beachten Sie, dass der MySQL-Dienst unter Windows keine Wirkung hat, wenn Sie die Named-Pipe-Option nicht aktivieren und einfach diese Option verwenden

# (über die Option „enable-named-pipe“)!

#skip-networking

# Die Obergrenze der Anzahl gleichzeitiger Sitzungen, die der MySQL-Dienst zulässt

# Eine der Verbindungen wird mit SUPER-Berechtigungen zum Anmelden reserviert als Administrator.

# Gerade Die Obergrenze der Anzahl der Verbindungen wurde erreicht.

max_connections = 3000

# Die maximal zulässige Anzahl von Fehlern für jede Clientverbindung , wenn dieses Limit erreicht ist.

# Dieser Client Der Client wird vom MySQL-Dienst blockiert, bis „FLUSH HOSTS“ ausgeführt oder der Dienst neu gestartet wird

# Ungültige Passwörter und andere Fehler während Verbindung erhöht diesen Wert.

# Siehe „Aborted_connects“-Status, um den globalen Zähler zu erhalten.

max_connect_errors = 50

# Die Anzahl der von allen Threads geöffneten Tabellen.

# Durch Erhöhen dieses Werts werden die von mysqld benötigten Dateideskriptoren erhöht. Die Anzahl von

# Sie müssen also bestätigen, dass die Variableneinstellung „open-files-limit“ in [mysqld_safe] die Anzahl von zulässt Dateien müssen mindestens dem Wert von table_cache

table_open_cache = 4096

# Das Aktivieren von Dateisperren kann sich negativ auf die Leistung auswirken

# Verwenden Sie diese Option also nur, wenn Sie mehrere Datenbankinstanzen auf derselben Datei ausführen (beachten Sie, dass es noch andere Einschränkungen gibt!)

# Oder Sie verwenden andere Softwareabhängigkeiten auf Dateiebene zum Sperren die MyISAM-Tabelle

#external-locking

# Das Anforderungspaket, das der Dienst verarbeiten kann. Die maximale Größe und die maximale Anforderungsgröße, die der Dienst verarbeiten kann (notwendig bei der Arbeit mit großen BLOB-Feldern).

# Unabhängige Größe für jede Verbindung, die Größe erhöht sich dynamisch

max_allowed_packet = 32M

# Die Cache-Größe, die von Binlog in einer Transaktion zum Aufzeichnen des SQL-Status gehalten wird

# Wenn Sie häufig große Transaktionen mit mehreren Anweisungen verwenden, können Sie diesen Wert erhöhen, um eine höhere Leistung zu erzielen.

# Der gesamte Status der Transaktion wird im Binlog-Puffer gepuffert und dann einmal in das Binlog geschrieben nach der Übermittlung

# Wenn die Transaktion größer als dieser Wert ist, wird stattdessen eine temporäre Datei auf der Festplatte verwendet

# Dieser Puffer wird erstellt, wenn jede verbundene Transaktion zum ersten Mal den Status aktualisiert

binlog_cache_size = 4M

# Die maximal zulässige Kapazität einer unabhängigen Speichertabelle.

# Diese Option soll verhindern, dass versehentlich eine übermäßig große Speichertabelle erstellt wird, die alle Speicherressourcen verbraucht.

max_heap_table_size = 128M

# Zufälliger Lesedatenpuffer verwendet Speicher (read_rnd_buffer_size): Entspricht sequentiellem Lesen,

# Wenn MySQL nicht sequentielles Lesen (zufälliges Lesen) von Daten durchführt Blöcke werden verwendet > this Der Puffer speichert vorübergehend die gelesenen Daten

# Lesen Sie beispielsweise Tabellendaten basierend auf Indexinformationen, verknüpfen Sie die Tabelle basierend auf der sortierten Ergebnismenge usw.

# Wenn beim Lesen von Datenblöcken eine bestimmte Reihenfolge eingehalten werden muss, muss MySQL im Allgemeinen zufällige Lesevorgänge generieren und dann den durch den Parameter read_rnd_buffer_size

festgelegten Speicherpuffer verwenden

read_rnd_buffer_size = 16M

# Der Sortierpuffer wird verwendet, um die durch ORDER BY- und GROUP BY-Warteschlangen verursachte Sortierung zu verarbeiten.

# Wenn die sortierten Daten nicht in den Sortierpuffer gestellt werden können, wird ein An Es wird eine alternative festplattenbasierte Zusammenführungssortierung verwendet

# Siehe die Statusvariable „Sort_merge_passes“

# Wird von jedem Thread zugewiesen, wenn die Sortierung erfolgt

sort_buffer_size = 16M

# Dieser Puffer wird verwendet, um vollständige Verknüpfungen (FULL JOINS-Verbindungen ohne Indizes) zu optimieren.

# Ähnliche Verknüpfungen weisen in den meisten Fällen eine sehr schlechte Leistung auf, können jedoch die Auswirkungen auf die Leistung verringern 🎜>

# Zeigen Sie die Anzahl der vollständigen Verknüpfungen über die Statusvariable „Select_full_join“ an.

# Wenn eine vollständige Verknüpfung auftritt, weisen Sie

join_buffer_size = 16M

# Wie viele Threads reservieren wir im Cache zur Wiederverwendung

# Wenn ein Client die Verbindung trennt und die Threads im Cache kleiner als thread_cache_size sind, wird der End-Thread des Clients in den Cache gestellt.

# Dies kann den Overhead der Thread-Erstellung erheblich reduzieren, wenn Sie eine große Anzahl neuer Verbindungen benötigen

# (Im Allgemeinen führt dies nicht zu einer wesentlichen Leistungsverbesserung, wenn Sie über ein gutes Thread-Modell verfügen. )

thread_cache_size = 16

# Dadurch kann die Anwendung dem Threading-System einen Hinweis auf die Anzahl der Threads geben, die unbedingt gleichzeitig ausgeführt werden möchten ># Dieser Wert ist nur für Systeme von Bedeutung, die die Funktion thread_concurrency() unterstützen (z. B. Sun Solaris).

# Sie können versuchen, [Anzahl der CPUs]*(2..4) als Wert zu verwenden of thread_concurrency

thread_concurrency = 8

# Der Abfragepuffer wird häufig verwendet, um die Ergebnisse von SELECT zu puffern und die Ergebnisse direkt zurückzugeben, ohne beim nächsten Mal dieselbe Abfrage auszuführen.

# Das Aktivieren des Abfrage-Caching kann die Servergeschwindigkeit erheblich verbessern, wenn Sie eine große Anzahl identischer Abfragen haben und die Tabelle selten ändern. # Überprüfen Sie die Statusvariable „Qcache_lowmem_prunes“, um zu überprüfen, ob der aktuelle Wert für Ihre Auslastung geeignet ist Ist der Wert hoch genug?

# Hinweis: Wenn sich Ihre Tabelle häufig ändert oder Ihr Abfragetext jedes Mal anders ist,

# kann die Abfragepufferung eher zu einer Leistungsverschlechterung als zu einer Leistungsverbesserung führen

query_cache_size = 128M

# Nur Ergebnisse, die kleiner als diese Einstellung sind, werden zwischengespeichert

# Diese Einstellung wird verwendet, um den Abfragecache zu schützen und eine große Ergebnismenge zu verhindern. Alle anderen Abfrageergebnisse abdecken.

query_cache_limit = 4M

# Die durch die Volltextsuche indizierte Mindestwortlänge

# Möglicherweise möchten Sie sie reduzieren, wenn Sie nach kürzeren Wörtern suchen müssen .

# Beachten Sie, dass Sie nach dem Ändern dieses Werts Ihren FULLTEXT-Index neu erstellen müssen

ft_min_word_len = 8

# Wenn Ihr System die memlock()-Funktion unterstützt Möglicherweise möchten Sie diese Option aktivieren, damit beim Ausführen von MySQL Daten im Speicher gesperrt bleiben und verhindert wird, dass sie ausgelagert werden, wenn der Speicher sehr knapp ist.

# Diese Option ist gut für die Leistung. Hilfreich

#memlock

# Als Tabellentyp, der standardmäßig beim Erstellen einer neuen Tabelle verwendet wird,

# Wenn der Tabellentyp beim Erstellen einer Tabelle nicht speziell ausgeführt wird, wird dieser Wert verwendet

default_table_type = InnoDB

# Die vom Thread verwendete Heap-Größe. Diese Speichermenge ist für jede Verbindung reserviert.

# MySQL selbst muss normalerweise 64 KB Speicher nicht überschreiten

# Wenn Sie Ihre eigenen UDF-Funktionen verwenden, die viel Heap benötigen, oder Ihr Betriebssystem für bestimmte Vorgänge mehr Heap benötigt, müssen Sie den Wert möglicherweise höher einstellen.

thread_stack = 512K

# Legen Sie die Standard-Transaktionsisolationsstufe fest:

# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE

transaction_isolation = REPEATABLE-READ

# Maximale Größe der internen (im Speicher befindlichen) temporären Tabelle

# Wenn eine Tabelle größer als dieser Wert wird, wird sie automatisch in eine festplattenbasierte Tabelle konvertiert.

# Dieses Limit gilt für eine einzelne Tabelle, nicht für die Summe.

tmp_table_size = 128M

# Schalten Sie die Binärprotokollfunktion ein.

# In der Replikationskonfiguration dies Das Element muss als MASTER-Masterserver aktiviert sein

# Wenn Sie eine Point-in-Time-Wiederherstellung von Ihrem letzten Backup durchführen müssen, benötigen Sie auch Binärprotokolle.

log-bin=mysql -bin

# Wenn Sie den verketteten Replikationsmodus von der Serverstruktur (A->B->C) verwenden,

# Sie müssen dies auf B aktivieren.

# Diese Option öffnet das Protokoll der im Slave-Thread erneut durchgeführten Aktualisierungen und schreibt sie in das Binärprotokoll des Slave-Servers.

#log_slave_updates

# Aktivieren Sie die vollständige Abfrageprotokollierung. Alle vom Server empfangenen Abfragen (auch bei Abfragen mit falscher Syntax)

# werden protokolliert. Dies ist nützlich zum Debuggen und wird in Produktionsumgebungen häufig deaktiviert.

#log

# Warnungen in die Fehlerprotokolldatei drucken Wenn Sie Fragen zu MySQL haben

# Sie sollten das Warnprotokoll öffnen und das Fehlerprotokoll sorgfältig überprüfen, um mögliche Ursachen zu ermitteln Grund.

#log_warnings

# Langsame Abfragen protokollieren bezieht sich auf Abfragen, die mehr Zeit als „long_query_time“ definieren.

# Wenn log_long_format aktiviert ist, werden Abfragen durchgeführt die keine Indizes verwenden, werden ebenfalls protokolliert.

# Wenn Sie häufig neue Abfragen zu einem vorhandenen System hinzufügen, ist dies im Allgemeinen eine gute Idee.

log_slow_queries

# Alle Abfragen, die länger als diese Zeit (in Sekunden) dauern, werden als langsame Abfragen betrachtet Die aktuelle Zeitgenauigkeit von MySQL kann nur die zweite Ebene erreichen). Dies ist aktiviert.

# Wenn Sie dies aktivieren, werden Abfragen, die keine Indizes verwenden, als langsame Abfragen aufgezeichnet und an das Schnellprotokoll angehängt.

log_long_format

# Dieses Verzeichnis ist Wird von MySQL zum Speichern temporärer Dateien verwendet.

# Wird für die Sortierung großer Festplatten und für die interne Sortierung verwendet.

# Und für einfache temporäre Tabellen.

# Wenn Sie keine sehr großen temporären Dateien erstellen, ist es möglicherweise besser, sie im swapfs/tmpfs-Dateisystem zu platzieren

# Eine andere Möglichkeit besteht darin, sie auch auf einer separaten Festplatte zu platzieren

# Sie können „;“ verwenden, um mehrere Pfade zu platzieren

# Sie folgen Roud-Robin Die Methode wird abgefragt und verwendet

#tmpdir = /tmp

# *** Master-Slave-Replikationsbezogene Einstellungen

# Die eindeutige Dienstidentifikationsnummer, der Wert liegt zwischen 1 und 2^32-1.

# Dieser Wert muss sein sowohl auf dem Master als auch auf dem Slave festgelegt werden.

# Wenn „master-host“ nicht festgelegt ist, ist der Standardwert 1, aber wenn Sie diese Option ignorieren, wird MySQL nicht als Master wirksam >server-id = 1

# Kopierter Slave (entfernen Sie die Kommentare im Master-Bereich, damit es wirksam wird)

#

# Um diesen Host als zu konfigurieren Beim replizierten Slave-Server können Sie zwei Methoden wählen:

#

# 1) Verwenden Sie den Befehl CHANGE MASTER TO (in unserem Handbuch. Vollständige Beschreibung in ) -

# Die Syntax lautet wie folgt:

#

# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,

# MASTER_USER=, MASTER_PASSWORD = ;

#

# Sie müssen , und andere von spitzen Klammern umgebene Felder ersetzen und die Master-Portnummer verwenden (Standard 3306).

#

# Beispiel:

#

# CHANGE MASTER TO MASTER_HOST='125.564.12.1′, MASTER_PORT=3306,

# MASTER_USER='joe', MASTER_PASSWORD ='secret';

#

# oder

#

# 2) Legen Sie die folgenden Variablen fest, egal was Sie tun, und starten Sie dann die Replikation zum ersten Mal (auch in im Falle eines erfolglosen Fehlers,

# z. B. wenn Sie im Feld „Master-Passwort“ ein falsches Passwort eingegeben haben und der Slave keine Verbindung herstellen kann),

# Slave Es wird eine Datei „master.info“ erstellt, und alle nachfolgenden Änderungen an den in dieser Datei enthaltenen Parametern werden

# ignoriert und durch den Inhalt der Datei „master.info“ überschrieben, es sei denn, Sie schließen den Slave-Dienst, löschen die Master-.info und starten den Slave-Dienst neu .

# Aus diesem Grund möchten Sie möglicherweise nicht die Konfiguration berühren (auskommentiert) und stattdessen CHANGE MASTER TO (siehe oben) verwenden

#

# Das Einzigartige Die erforderliche ID-Nummer liegt zwischen 2 und 2^32 – 1

# (und unterscheidet sich vom Master)

# Wenn Master-Host festgelegt ist, ist der Standardwert 2

# Aber wenn es weggelassen wird, wird es nicht wirksam

#server-id = 2

#

# Master in der Replikationsstruktur – Muss

#master-host =

#

# Der Benutzername, den der Slave zur Authentifizierung bei der Verbindung mit dem Master verwendet – Muss

#master -user =

#

# Passwort, das vom Slave zur Authentifizierung beim Herstellen einer Verbindung zum Master verwendet wird – muss

#master-password =

#

# Master-Abhörport sein.

# Optional – der Standardwert ist 3306

#master-port =

# Macht den Slave nur im Besitz der SUPER-Berechtigungen des Benutzers und des Slave-Threads Es kann die Daten ändern.

# Damit können Sie sicherstellen, dass keine Anwendung versehentlich die Daten auf dem Slave statt auf dem Master ändert

#read_only

#* ** MyISAM-bezogene Optionen

# Die Größe des Schlüsselwortpuffers wird im Allgemeinen zum Puffern des Indexblocks der MyISAM-Tabelle verwendet.

# Stellen Sie ihn nicht größer als Ihren verfügbaren Speicher von 30 % ein.

# Weil ein Teil des Speichers auch vom Betriebssystem zum Puffern von Zeilendaten verwendet wird

# Auch wenn Sie keine MyISAM-Tabellen verwenden, müssen Sie dennoch 8-64 MB Speicher einrichten, da dieser auch von internen temporären Festplattentabellen verwendet wird

key_buffer_size = 128M

# Puffergröße, die für den vollständigen Tabellenscan der MyISAM-Tabelle verwendet wird.

# Wenn ein vollständiger Tabellenscan erforderlich ist, wird er im entsprechenden Thread zugewiesen.

read_buffer_size = 8M

# Wenn Zeilen nach dem Sortieren aus einer bereits sortierten Sequenz gelesen werden, werden die Zeilendaten aus diesem Puffer gelesen, um Festplattensuchvorgänge zu verhindern.

# Wenn Sie diesen Wert erhöhen, kann die Leistung erheblich verbessert werden.

# Wird bei Bedarf von jedem Thread zugewiesen

read_rnd_buffer_size = 64M

# MyISAM verwendet einen speziellen baumartigen Cache, um Burst-Einfügungen zu ermöglichen

# (Diese Einfügungen sind, INSERT … SELECT, INSERT … VALUES (…), (…), … und LOAD DATA INFILE) schneller

# Diese Variable ist auf jeden Prozess begrenzt. Die Anzahl der Bytes des Pufferbaums.

# Wenn Sie ihn auf 0 setzen, wird diese Optimierung deaktiviert.

# Stellen Sie diesen Wert zur Optimierung nicht größer als „key_buffer_size“ ein.

# Wann dieser Puffer zugewiesen wird wenn eine Burst-Einfügung erkannt wird.

bulk_insert_buffer_size = 256M

# Dieser Puffer wird verursacht, wenn MySQL die Datendatei reparieren, optimieren, ändern und in eine leere Tabelle laden muss. Wird beim Neuerstellen des Index zugewiesen.

# Dies wird in jedem Thread zugewiesen. Sie müssen also vorsichtig sein, wenn Sie große Werte festlegen.

myisam_sort_buffer_size = 256M

# MySQL Neuerstellung des Index Die maximale temporäre Dateigröße zulässig, wenn REPAIR, ALTER TABLE oder LOAD DATA INFILE.

# Wenn die Dateigröße größer als dieser Wert ist, wird der Index durch Schlüsselwertpufferung erstellt (langsamer)

myisam_max_sort_file_size = 10G

# Wenn die temporäre Datei, die zum schnelleren Erstellen des Index verwendet wird, größer als der angegebene Wert ist, verwenden Sie die Schlüsselwertpuffermethode.

# Dies wird hauptsächlich verwendet, um große Schlüssel mit langer Zeichenfolge zu erzwingen Tabellen verwenden die langsame Schlüsselwert-Puffermethode zum Erstellen von Indizes.

myisam_max_extra_sort_file_size = 10G

# Wenn eine Tabelle mehr als einen Index hat, kann MyISAM mehr als einen Thread verwenden, um sie zu reparieren parallele Sortierung.

# Dies ist eine gute Wahl für Benutzer mit mehreren CPUs und viel Speicher

myisam_repair_threads = 1

# MyISAM-Tabellen automatisch überprüfen und reparieren nicht ordnungsgemäß geschlossen.

myisam_recover

# Standardmäßig geschlossen

skip-federated

# ** * BDB-bezogene Optionen ***

# Verwenden Sie diese Option, wenn der von Ihnen ausgeführte MySQL-Dienst über BDB-Unterstützung verfügt, Sie ihn aber nicht verwenden möchten. Dies spart Speicherplatz und kann einige Dinge beschleunigen.

skip-bdb

# *** INNODB-bezogene Optionen ***

# Wenn Ihr MySQL-Dienst InnoDB-Unterstützung enthält, Sie diese aber nicht verwenden möchten,

# verwenden Sie diese Optionen, um Speicherplatz zu sparen und Speicherplatz und einige Teile beschleunigen

#skip-innodb

# Zusätzlicher Speicherpool wird von InnoDB verwendet, um Metadateninformationen zu speichern (in 5.6 nicht mehr empfohlen)

# Wenn InnoDB für diesen Zweck mehr Speicher benötigt, beginnt es, Speicher vom Betriebssystem anzufordern.

# Da dieser Vorgang auf den meisten modernen Betriebssystemen schnell genug ist, muss dieser Wert im Allgemeinen nicht geändert werden.

# Der Befehl SHOW INNODB STATUS zeigt die aktuell verwendete Menge an.

innodb_additional_mem_pool_size = 64M

# InnoDB verwendet im Gegensatz zu MyISAM einen Pufferpool, um Indizes und Originaldaten zu speichern.

# Je größer Sie hier einstellen, desto weniger Speicherplatz benötigen Sie für die meisten Lesevorgänge anstelle der Festplatte.

# Auf einem eigenständigen Datenbankserver können Sie diese Variable auf 80 % der physischen Speichergröße des Servers festlegen

# Stellen Sie sie nicht zu groß ein, da es sonst aufgrund der physischen Speicherkonkurrenz zu Paging-Thrashing im Betrieb kommen kann

# Beachten Sie, dass Sie auf 32-Bit-Systemen möglicherweise auf 2-3,5 G Speicherlimit auf Benutzerebene pro Prozess beschränkt sind.

# Stellen Sie es also nicht zu hoch ein.

innodb_buffer_pool_size = 6G

# InnoDB speichert Daten in einer oder mehreren Datendateien als Tabellenbereiche.

# Wenn Sie nur eine einzige Logik haben, damit der Treiber Ihre Daten speichert, Eine einzelne Auto-Inkrementierungsdatei reicht aus.

# In anderen Fällen ist eine Datei pro Gerät im Allgemeinen eine gute Wahl.

# Sie können InnoDB auch so konfigurieren, dass leere Festplattenpartitionen verwendet werden Weitere Informationen finden Sie im Handbuch

innodb_data_file_path = ibdata1:10M:autoextend

# Legen Sie diese Option fest, wenn InnoDB-Tablespace-Dateien in anderen Partitionen gespeichert werden sollen.

# werden standardmäßig im Datenverzeichnis von MySQL gespeichert.

#innodb_data_home_dir =

# Die Anzahl der E/A-Threads, die zum Synchronisieren von E/A-Vorgängen verwendet werden

# Dieser Wert ist unter Unix fest auf 8 codiert, Festplatten-E/A ist jedoch möglich Windows schneidet mit einem großen Wert besser ab.

innodb_file_io_threads = 8

# Wenn Sie feststellen, dass der InnoDB-Tablespace beschädigt ist, kann Ihnen das Festlegen dieses Werts auf einen Wert ungleich Null beim Exportieren Ihrer Tabelle helfen.

# Beginnen Sie mit 1 und erhöhen Sie diesen Wert, bis Sie die Tabelle erfolgreich exportieren können

#innodb_force_recovery=1

# Die Anzahl der zulässigen Threads im InnoDb-Kern.

# Der optimale Wert hängt von der Anwendung, der Hardware und der Betriebssystemplanung ab

# Ein zu hoher Wert kann zu gegenseitigem Thread-Ausschluss führen

innodb_thread_concurrency = 16

# Wenn auf 1 gesetzt, wird InnoDB das Transaktionsprotokoll nach jedem Commit auf die Festplatte leeren (fsync),

# Dies bietet vollständiges ACID-Verhalten

# Wenn Sie bereit sind, Kompromisse einzugehen Transaktionssicherheit, und Sie führen eine kleine Transaktion aus, Sie können diesen Wert auf 0 oder 2 setzen, um die durch das Transaktionsprotokoll verursachte Festplatten-E/A zu reduzieren

# 0 bedeutet, dass das Protokoll nur etwa alle Sekunden protokolliert in die Protokolldatei geschrieben und die Protokolldatei auf die Festplatte geschrieben wird. # 2 bedeutet, dass das Protokoll nach jedem Commit in die Protokolldatei geschrieben wird, die Protokolldatei jedoch nur ungefähr jede Sekunde auf die Festplatte geschrieben wird 🎜>

innodb_flush_log_at_trx_commit = 2

(Hinweis: Wenn es sich um einen Spieleserver handelt, wird empfohlen, diesen Wert auf 2 zu setzen; wenn es sich um eine Anwendung mit extrem hohen Anforderungen an die Datensicherheit handelt, wird dies empfohlen Setzen Sie ihn auf 1; setzen Sie ihn auf 0, um die höchste Leistung zu erzielen. Im Falle eines Fehlers können jedoch Daten verloren gehen. Der Standardwert 1 bedeutet, dass das Protokoll für jeden auf die Festplatte geschrieben (flush) werden muss Transaktions-Commit oder Anweisung außerhalb der Transaktion, was sehr zeitaufwändig ist (insbesondere bei Verwendung eines batteriebetriebenen Caches). Die Einstellung auf 2 ist für viele Anwendungen in Ordnung, insbesondere für solche, die von MyISAM-Tabellen übertragen werden Das Protokoll wird weiterhin jede Sekunde auf die Festplatte geleert, anstatt auf die Festplatte geschrieben zu werden. Daher gehen Aktualisierungen im Allgemeinen nicht länger als 1–2 Sekunden verloren sicher. Selbst wenn MySQL hängt, können Transaktionsdaten verloren gehen, während bei einem Wert von 2 das gesamte Betriebssystem nur dann verloren gehen kann, wenn es geschlossen ist.

# Beschleunigen Sie das Herunterfahren von InnoDB. Dadurch wird verhindert, dass InnoDB während des Herunterfahrens eine vollständige Löschung durchführt und den Puffer einfügt. innodb_fast_shutdown

# Die Größe des Puffers, der zum Puffern von Protokolldaten verwendet wird.

# Wenn dieser Wert fast voll ist, muss InnoDB Daten auf die Festplatte leeren

# Da Es wird grundsätzlich jede Sekunde geleert. Es besteht keine Notwendigkeit, diesen Wert zu hoch einzustellen (auch nicht für lange Transaktionen).

innodb_log_buffer_size = 16M

# Die Größe jeder Protokolldatei in der Protokollgruppe .

# Sie sollten die Gesamtgröße der Protokolldatei auf 25 % bis 100 % Ihrer Pufferpoolgröße festlegen

#, um unnötiges Leeren des Pufferpools beim Überschreiben von Protokolldateien zu vermeiden ># Bitte beachten Sie jedoch, dass eine große Protokolldatei die für den Wiederherstellungsprozess erforderliche Zeit erhöht

innodb_log_file_size = 512M

# Die Gesamtzahl der Dateien in der Protokollgruppe.

# Im Allgemeinen ist 2~3 besser.

innodb_log_files_in_group = 3

# Der Speicherort der Protokolldatei von InnoDB. Der Standardwert ist das Datenverzeichnis von MySQL.

# Sie können es einer separaten Festplatte oder einem RAID1-Volume zuweisen, um seine Leistung zu verbessern

#innodb_log_group_home_dir

# Der maximal zulässige Anteil schmutziger Seiten im InnoDB-Pufferpool

# Wenn das Limit erreicht ist, beginnt InnoDB damit, sie zu leeren, um zu verhindern, dass sie saubere Datenseiten beeinträchtigen.

# Dies ist ein weiches Limit und es kann nicht garantiert werden, dass es absolut durchgesetzt wird innodb_max_dirty_pages_pct = 90

# Die von InnoDB zum Aktualisieren des Protokolls verwendete Methode

# Tabellenbereiche verwenden immer die Dual-Write-Flush-Methode

# Der Standardwert ist „fdatasync“. , das andere ist „O_DSYNC“.

# Im Allgemeinen gilt: Wenn Sie einen Hardware-RAID-Controller haben und dessen unabhängiger Cache den Rückschreibmechanismus verwendet und über einen Batterie-Ausschaltschutz verfügt, sollte er auf eingestellt werden O_DIRECT

# Andernfalls sollte es in den meisten Fällen auf fdatasync gesetzt werden

#innodb_flush_method= fdatasync

# Wie lange eine InnoDB-Transaktion warten sollte, bis eine Sperre gewährt wird wird zurückgesetzt.

# InnoDB erkennt automatisch Transaktions-Deadlocks in der Sperrtabelle, die es besitzt, und setzt die Transaktion zurück.

# Wenn Sie die LOCK TABLES-Direktive verwenden oder einen transaktionssicheren Speicher verwenden Andere Engine als InnoDB in derselben Transaktion

# dann kann es zu einem Deadlock kommen, ohne dass InnoDB es bemerkt

# In diesem Fall ist dieser Timeout-Wert sehr hilfreich, um dieses Problem zu lösen

innodb_lock_wait_timeout = 120

# Diese Einstellung teilt InnoDB mit, ob es die Daten und Indizes aller Tabellen in einem gemeinsam genutzten Tabellenbereich speichern muss (innodb_file_per_table = OFF) oder die Daten jeder Tabelle in einer separaten .ibd-Datei platzieren muss (innodb_file_per_table = ON)

# Mit einer Datei pro Tabelle können Sie Speicherplatz zurückgewinnen, wenn Sie Tabellen löschen, kürzen oder neu erstellen.

# Dies ist auch für einige erweiterte Funktionen wie Datenkomprimierung erforderlich, bringt jedoch keine Leistung Gain

innodb_file_per_table = on

[mysqldump]

# Nicht das gesamte Ergebnis im Speicher zwischenspeichern, bevor es auf die Festplatte geschrieben wird. Dieses Element

schnell

max_allowed_packet = 32M

[mysql]

no-auto-rehash

# Von UPDATEs sind nur Schlüsselwerte zulässig und LÖSCHEN .

#safe-updates

[myisamchk]

key_buffer = 16M 8M

write_buffer = 8M

[mysqlhotcopy]

interactive-timeout

[mysqld_safe]

# Erhöhen Sie die verfügbare Zeit jedes Prozesses. Anzahl der geöffneten Dateien.

# Warnung: Stellen Sie sicher, dass Sie dies getan haben Stellen Sie das systemweite Limit hoch genug ein!

# Sie müssen diesen Wert hoch einstellen, um eine große Anzahl von Tabellen zu öffnen

open- files-limit = 8192

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in MySQL-Konfigurationsparameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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