Einführung in /etc/my.cnf-Parameter in MySQL 5.7

Einführung in /etc/my.cnf-Parameter in MySQL 5.7

Nachfolgend finden Sie einige allgemeine Parameter von /etc/my.cnf von MySQL 5.7. Notieren Sie sie selbst und ergänzen Sie sie jederzeit.

Standardoptionen werden aus den folgenden Dateien in der angegebenen Reihenfolge gelesen:

/etc/meine.cnf /etc/mysql/meine.cnf /usr/etc/meine.cnf ~/.meine.cnf

[Kunde]
Port = 3306
Standardzeichensatz = utf8mb4
socket=/tmp/mysql.sock

[mysql]
#prompt="\\u@\\h :\\d \\r:\\m:\\s> "
prompt="\\u@\\h \\R:\\m:\\s [\\d]> "
#keine-automatische-Wiederholung
automatische Wiederaufbereitung
Standardzeichensatz = utf8mb4
socket=/tmp/mysql.sock

[mysqld]
##########################
# Zusammenfassung
##########################
skip_name_resolve = ein
#Grant-Tabellen überspringen
#Netzwerken überspringen

Bindeadresse = 0.0.0.0
Port = 3306
basedir=/usr/local/mysql
Datenverzeichnis=/Daten/MySQL
socket=/tmp/mysql.sock
tmpdir = /tmp
pid-Datei=/tmp/mysqld.pid

explizite_Vorgaben_für_Zeitstempel=1
Kleinbuchstabentabellennamen = 1

table_open_cache = 8000
transaction_isolation = 'WIEDERHOLBARES LESEN'

##########################
# Zeitüberschreitung
##########################
Verbindungstimeout = 20
Wartezeitüberschreitung = 300
interaktives_Timeout = 300

##########################
#Verbindung
##########################
max_Verbindungen = 2000
Max_Benutzerverbindungen = 1900
max_connect_errors = 100000
max_allowed_packet = 1G

##########################
# Zeichensatz
##########################
Zeichensatzserver = utf8mb4
Sortierserver = utf8mb4_bin

##########################
# Log-Bin
##########################
Server-ID = 1
log_bin = mysql-bin
# REIHE, ANWEISUNG, GEMISCHT
binlog_format = Zeile
sync_binlog = 1
Ablaufdatum der Protokolle: 7
binlog_cache_size = 128 m
max_binlog_cache_size = 512 m
max_binlog_size = 256 M
master_info_repository=TABELLE
log_slave_updates=EIN
binlog_checksum=keine

#binlog_ignore_db=Informationsschema
#binlog_ignore_db=mysql
#binlog_ignore_db=Leistungsschema
#binlog_ignore_db=sys
#binlog_do_do=
replicate_ignore_db=Informationsschema
replicate_ignore_db=mysql
replicate_ignore_db=Leistungsschema
replicate_ignore_db=sys
#replicate_do_db=

##########################
#gtid
##########################
gtid_mode = ein
enforce_gtid_consistency = ein

##########################
# Slave-Parallel
##########################
slave_net_timeout=60
slave_parallel_type=LOGISCHE_UHR
Slave_Parallel_Worker = 4

##########################
# Protokoll-Relay
##########################
relay_log_info_repository=TABELLE
relay_log = mysql-relay-bin
relay_log_purge = ein
relay_log_recovery = ein
max_relay_log_size = 1 GB

##########################
# Fehler protokollieren
##########################
log_error=/data/mysql/mysqld_error.log

##########################
# langsam protokollieren
##########################
slow_query_log = ein
slow_query_log_file = /data/mysql/mysqld_slow.log
lange_Abfragezeit = 2
log_queries_not_using_indexes = ein

##########################
# log allgemein
##########################
general_log = ein
general_log_file = /data/mysql/mysqld_gener.log


##########################
# Thread-Pool, Enterprise Edition
##########################
#thread_handling=Pool von Threads
#thread_handling=ein Thread pro Verbindung
#thread_pool_überabonnieren=8 

##########################
# innodb
##########################
innodb_buffer_pool_size=2G
innodb_buffer_pool_instances=2
innodb_adaptive_flushing=ein
innodb_file_per_table=1
innodb_log_file_size=1024M
innodb_log_buffer_size=64M
max_prepared_stmt_count=150000
innodb_flush_log_at_trx_commit = 1
innodb_max_dirty_pages_pct=50

##########################
# Passwortrichtlinie
# nach init 
##########################
#validate_password_policy=0
#validate_password_length=4     
#validate_password_mixed_case_count=0
#validate_password_number_count=0
#validate_password_special_char_count=0

Ergänzung: MySQL 5.6 my.cnf Konfiguration

[Kunde]
Port = 3306
Socket = /tmp/mysql.sock

[mysqld]
Port = 3306
Socket = /tmp/mysql.sock

basedir = /usr/local/mysql
Datenverzeichnis = /data/mysql
pid-Datei = /data/mysql/mysql.pid
Benutzer = MySQL
Bindeadresse = 0.0.0.0
Server-ID = 1 # zeigt an, dass die Seriennummer dieser Maschine 1 ist, was im Allgemeinen bedeutet, dass der Master die Name-Resolve überspringt
# Deaktivieren Sie MySQL bei der Durchführung der DNS-Auflösung für externe Verbindungen. Mit dieser Option können Sie die Zeit reduzieren, die MySQL für die DNS-Auflösung benötigt. Beachten Sie jedoch, dass wenn Sie diese Option aktivieren,
# Alle Remote-Host-Verbindungsautorisierungen müssen den IP-Adressmodus verwenden, da MySQL sonst Verbindungsanforderungen nicht normal verarbeiten kann#skip-networking

back_log = 600
# Die Anzahl der Verbindungen, die MySQL haben kann. Dies kommt zum Tragen, wenn der Haupt-MySQL-Thread in kurzer Zeit viele Verbindungsanforderungen erhält.
# Der Hauptthread benötigt dann einen Moment (wenn auch nur einen kurzen), um die Verbindung zu überprüfen und einen neuen Thread zu starten. Der back_log-Wert gibt an, wie viele Anfragen gestapelt werden können, bevor MySQL vorübergehend aufhört, auf neue Anfragen zu antworten.
# Wenn Sie in kurzer Zeit viele Verbindungen erwarten, sollten Sie diesen Wert erhöhen. Das heißt, wenn die MySQL-Verbindungsdaten max_connections erreichen, wird die neue eingehende Anforderung im Stapel gespeichert.
# Warten auf eine Verbindung, um Ressourcen freizugeben. Die Nummer des Stapels ist back_log. Wenn die Anzahl der wartenden Verbindungen back_log überschreitet, werden keine Verbindungsressourcen gewährt.
# Darüber hinaus wird dieser Wert (back_log) durch die Größe der Warteschlange Ihres Betriebssystems für eingehende TCP/IP-Verbindungen begrenzt.
# Ihr Betriebssystem hat seine eigenen Beschränkungen für die Größe dieser Warteschlange (sehen Sie in der Dokumentation Ihres Betriebssystems nach, um den Maximalwert dieser Variable herauszufinden). Der Versuch, back_log höher als die Beschränkung Ihres Betriebssystems einzustellen, hat keine Auswirkungen.

max_Verbindungen = 1000
# Die maximale Anzahl von Verbindungen für MySQL. Wenn der Server eine große Anzahl gleichzeitiger Verbindungsanforderungen hat, wird empfohlen, diesen Wert zu erhöhen, um die Anzahl paralleler Verbindungen zu erhöhen. Dies hängt natürlich von der Fähigkeit des Computers ab, dies zu unterstützen. Denn wenn mehr Verbindungen vorhanden sind, stellt MySQL für jede Verbindung einen Verbindungspuffer bereit, der mehr Speicher verbraucht. Daher sollten Sie diesen Wert entsprechend anpassen und ihn nicht blind erhöhen. Sie können das Platzhalterzeichen „conn%“ verwenden, um die Anzahl der Verbindungen im aktuellen Status anzuzeigen und so die Größe dieses Werts zu bestimmen.

max_connect_errors = 6000
# Wenn für denselben Host mehr unterbrochene fehlerhafte Verbindungen vorliegen als die in diesem Parameter angegebene Zahl, wird dem Host die Verbindung untersagt. Um die Blockierung des Hosts aufzuheben, führen Sie Folgendes aus: FLUSH HOST.

Open_files_limit = 65535
# MySQL Open File Descriptor Limit, das Standardminimum beträgt 1024; wenn open_files_limit nicht konfiguriert ist, vergleichen Sie den Wert von max_connections*5 und ulimit -n, je nachdem, welcher größer ist.
# Wenn open_file_limit konfiguriert ist, vergleichen Sie die Werte von open_files_limit und max_connections*5 und verwenden Sie den größeren.

table_open_cache = 128
# Jedes Mal, wenn MySQL eine Tabelle öffnet, liest es einige Daten in den Cache table_open_cache. Wenn MySQL die entsprechenden Informationen in diesem Cache nicht finden kann, liest es sie von der Festplatte. Standardwert: 64
# Unter der Annahme, dass das System über 200 gleichzeitige Verbindungen verfügt, muss dieser Parameter auf 200*N gesetzt werden (N ist die Anzahl der für jede Verbindung erforderlichen Dateideskriptoren);
# Wenn table_open_cache auf einen großen Wert eingestellt ist und das System nicht so viele Dateideskriptoren verarbeiten kann, kann der Client keine Verbindung herstellen. max_allowed_packet = 4M
# Akzeptierte Paketgröße; der Wert dieser Variable kann bedenkenlos erhöht werden, da zusätzlicher Speicher nur bei Bedarf zugewiesen wird. Beispielsweise reserviert MySQLd nur dann mehr Speicher, wenn Sie lange Abfragen stellen oder wenn MySQLd große Ergebniszeilen zurückgeben muss.
# Der kleine Standardwert für diese Variable ist eine Vorsichtsmaßnahme, um Fehlerpakete zwischen Client und Server abzufangen und sicherzustellen, dass der Speicher nicht aufgrund der versehentlichen Verwendung großer Pakete überläuft.

binlog_cache_size = 1M
# Wenn eine Transaktion nicht festgeschrieben wird, werden die generierten Protokolle im Cache aufgezeichnet. Wenn die Transaktion festgeschrieben werden muss, werden die Protokolle auf der Festplatte gespeichert. Die Standardgröße des binlog_cache beträgt 32 KB.

maximale Heap-Tabellengröße = 8 M
# Definiert die Größe der Speichertabelle, die der Benutzer erstellen kann. Dieser Wert wird verwendet, um den maximalen Zeilenwert der Speichertabelle zu berechnen. Diese Variable unterstützt die dynamische Änderung von tmp_table_size = 16M
# Puffergröße der MySQL-Heap-Tabelle. Alle Verknüpfungen werden in einer DML-Anweisung durchgeführt und die meisten Verknüpfungen können sogar ohne temporäre Tabellen durchgeführt werden.
# Die meisten temporären Tabellen sind speicherbasierte (HEAP) Tabellen. Temporäre Tabellen mit großen Datensatzlängen (die Summe der Längen aller Spalten) oder Tabellen mit BLOB-Spalten werden auf der Festplatte gespeichert.
# Wenn die Größe einer internen Heap-Tabelle tmp_table_size überschreitet, kann MySQL die Heap-Tabelle im Arbeitsspeicher bei Bedarf automatisch in eine festplattenbasierte MyISAM-Tabelle ändern. Sie können die Größe temporärer Tabellen auch erhöhen, indem Sie die Option tmp_table_size festlegen. Das heißt, wenn Sie diesen Wert erhöhen, erhöht MySQL auch die Größe der Heap-Tabelle, was die Geschwindigkeit von Join-Abfragen verbessern kann. read_buffer_size = 2M
# MySQL-Lesepuffergröße. Eine Anforderung für einen sequentiellen Scan einer Tabelle weist einen Lesepuffer zu, und MySQL weist dafür einen Speicherpuffer zu. Die Variable read_buffer_size steuert die Größe dieses Puffers.
# Wenn sequentielle Scan-Anfragen für die Tabelle sehr häufig sind und Sie denken, dass häufige Scans zu langsam sind, können Sie die Leistung verbessern, indem Sie den Wert dieser Variablen und die Speicherpuffergröße erhöhen read_rnd_buffer_size = 8M
# Größe des MySQL-Pufferspeichers für zufälliges Lesen. Wenn Zeilen in beliebiger Reihenfolge gelesen werden (beispielsweise in sortierter Reihenfolge), wird ein zufälliger Lesepuffer zugewiesen. Wenn Sie eine Sortierabfrage durchführen,
# MySQL durchsucht zuerst den Puffer, um eine Festplattensuche zu vermeiden und die Abfragegeschwindigkeit zu verbessern. Wenn Sie eine große Datenmenge sortieren müssen, können Sie diesen Wert entsprechend erhöhen. MySQL reserviert diesen Pufferplatz jedoch für jede Clientverbindung. Sie sollten daher versuchen, diesen Wert entsprechend einzustellen, um übermäßigen Speicheraufwand zu vermeiden: sort_buffer_size = 8M
# Die Größe des Puffers, der von MySQL zum Durchführen von Sortierungen verwendet wird. Wenn Sie Ihr ORDER BY beschleunigen möchten, prüfen Sie zunächst, ob Sie MySQL dazu bringen können, Indizes anstelle einer zusätzlichen Sortierphase zu verwenden.
# Wenn nicht, versuchen Sie, die Größe der Variable sort_buffer_size zu erhöhen join_buffer_size = 8M
# Die Puffergröße, die für gemeinsame Abfragevorgänge verwendet werden kann. Wie sort_buffer_size ist auch der diesem Parameter entsprechende zugewiesene Speicher exklusiv für jede Verbindung thread_cache_size = 8
# Dieser Wert (Standard 8) gibt die Anzahl der Threads an, die im Cache wiederverwendet werden können. Wenn beim Trennen der Verbindung noch Platz im Cache vorhanden ist, werden die Threads des Clients in den Cache gestellt.
# Wenn der Thread erneut angefordert wird, wird die Anforderung aus dem Cache gelesen. Wenn der Cache leer ist oder es sich um eine neue Anforderung handelt, wird der Thread neu erstellt. Wenn viele neue Threads vorhanden sind,
# Eine Erhöhung dieses Wertes kann die Systemleistung verbessern. Durch Vergleichen der Variablen der Zustände „Connections“ und „Threads_created“ können Sie die Rolle dieser Variablen erkennen. (–> zeigt den einzustellenden Wert an)
# Entsprechend den Einstellungen des physischen Speichers lauten die Regeln wie folgt:
# 1G —> 8
# 2G —> 16
# 3G —> 32
# Größer als 3G —> 64

Abfrage-Cachegröße = 8 M
#Größe des MySQL-Abfragepuffers (MySQL bietet seit 4.0.1 einen Abfragepuffermechanismus) Mithilfe des Abfragepuffers speichert MySQL die SELECT-Anweisungen und Abfrageergebnisse im Puffer.
# Zukünftig werden für dieselbe SELECT-Anweisung (Groß-/Kleinschreibung beachten) die Ergebnisse direkt aus dem Puffer gelesen. Laut MySQL-Benutzerhandbuch kann durch die Verwendung des Abfragepuffers eine Effizienz von bis zu 238 % erreicht werden.
# Durch Überprüfen des Statuswerts „Qcache_%“ können Sie feststellen, ob die Einstellung für query_cache_size sinnvoll ist: Wenn der Wert von Qcache_lowmem_prunes sehr groß ist, weist dies darauf hin, dass häufig eine unzureichende Pufferung auftritt.
# Wenn der Wert von Qcache_hits ebenfalls sehr groß ist, bedeutet dies, dass der Abfragepuffer sehr häufig verwendet wird und Sie die Puffergröße erhöhen müssen; wenn der Wert von Qcache_hits nicht groß ist, bedeutet dies, dass Ihre Abfragewiederholungsrate sehr niedrig ist.
# In diesem Fall beeinträchtigt die Verwendung des Abfragepuffers die Effizienz. Sie können daher erwägen, den Abfragepuffer nicht zu verwenden. Darüber hinaus kann durch Hinzufügen von SQL_NO_CACHE zur SELECT-Anweisung explizit angegeben werden, dass der Abfragepuffer query_cache_limit = 2M nicht verwendet wird.
#Geben Sie die Puffergröße an, die von einer einzelnen Abfrage verwendet werden kann. Der Standardwert ist 1 MB.

Schlüsselpuffergröße = 4 M
#Geben Sie die für die Indizierung verwendete Puffergröße an und erhöhen Sie sie so weit wie möglich, um eine bessere Handhabung der Indizierung (für alle Lesevorgänge und mehrere Schreibvorgänge) zu erreichen. Wenn Sie es zu groß machen,
# Das System beginnt mit dem Paging und wird sehr langsam. Bei Servern mit etwa 4 GB Arbeitsspeicher kann dieser Parameter auf 384 M oder 512 M eingestellt werden. Durch Überprüfen der Statuswerte Key_read_requests und Key_reads,
# Sie können feststellen, ob die Einstellung „key_buffer_size“ sinnvoll ist. Das Verhältnis key_reads/key_read_requests sollte so gering wie möglich sein.
# Mindestens 1:100, 1:1000 ist besser (der obige Statuswert kann mit SHOW STATUS LIKE 'key_read%' abgerufen werden). Hinweis: Wenn dieser Parameterwert zu hoch eingestellt ist, verringert sich die Gesamteffizienz des Servers. ft_min_word_len = 4
# Mindestlänge des Wortsegmentierungsvokabulars, Standard ist 4

transaction_isolation = WIEDERHOLBARES LESEN
#MySQL unterstützt 4 Transaktionsisolationsebenen, und zwar:
# LESEN-UNCOMMITTED, LESEN-COMMITTED, WIEDERHOLBARES LESEN, SERIALISIERBAR.
# Wenn nicht angegeben, verwendet MySQL standardmäßig REPEATABLE-READ und ORACLE standardmäßig READ-COMMITTED

log_bin = mysql-bin
binlog_format = gemischt
expire_logs_days = 30 #Binlogs löschen, die älter als 30 Tage sind log_error = /data/mysql/mysql-error.log #Fehlerprotokollpfad slow_query_log = 1
long_query_time = 1 #Wenn die langsame Abfragezeit 1 Sekunde überschreitet, handelt es sich um eine langsame Abfrage slow_query_log_file = /data/mysql/mysql-slow.log

performance_schema = 0
explizite_Vorgaben_für_Zeitstempel

#lower_case_table_names = 1 #Groß-/Kleinschreibung nicht beachten, externe Sperren überspringen #MySQL-Option zum Vermeiden externer Sperren. Diese Option ist standardmäßig aktiviert default-storage-engine = InnoDB #Standard-Speicher-Engine innodb_file_per_table = 1
# InnoDB befindet sich im unabhängigen Tablespace-Modus. Jede Tabelle in jeder Datenbank generiert einen Datenraum. # Vorteile des unabhängigen Tablespace:
# 1. Jede Tabelle hat ihren eigenen separaten Tabellenbereich.
# 2. Die Daten und Indizes jeder Tabelle werden in ihrem eigenen Tabellenbereich gespeichert.
# 3. Eine einzelne Tabelle kann zwischen verschiedenen Datenbanken verschoben werden.
# 4. Speicherplatz kann zurückgefordert werden (außer beim Löschen der Tabelle, bei dem der Tabellenspeicherplatz nicht von selbst zurückgefordert werden kann)
# Manko:
# Die Größe einer einzelnen Tabelle ist zu groß, beispielsweise mehr als 100 G
# abschließend:
# Gemeinsam genutzte Tablespaces bieten bei Einfügevorgängen nur wenige Vorteile. Keiner der anderen weist eine so gute Leistung auf wie unabhängige Tablespaces. Wenn Sie unabhängige Tablespaces aktivieren, passen Sie innodb_open_files entsprechend an:

innodb_open_files = 500
# Begrenzen Sie die Daten der Tabelle, die Innodb öffnen kann. Wenn die Datenbank viele Tabellen enthält, erhöhen Sie diesen Wert bitte. Der Standardwert ist 300

innodb_buffer_pool_size = 64 M
# InnoDB verwendet im Gegensatz zu MyISAM einen Pufferpool zum Speichern von Indizes und Rohdaten.
# Je größer Sie ihn einstellen, desto weniger Festplatten-E/A benötigen Sie, um auf die Daten in der Tabelle zuzugreifen.
# Auf einem eigenständigen Datenbankserver können Sie diese Variable auf 80 % der physischen Speichergröße des Servers einstellen.
# Stellen Sie den Wert nicht zu groß ein, da sonst der Wettbewerb um den physischen Speicher zu Paging-Jitter im Betriebssystem führen kann.
# Beachten Sie, dass Sie auf 32-Bit-Systemen möglicherweise auf 2-3,5 GB Benutzerspeicher pro Prozess beschränkt sind.
# Stellen Sie den Wert also nicht zu hoch ein.

innodb_write_io_threads = 4
innodb_read_io_threads = 4
# innodb verwendet Hintergrundthreads, um Lese- und Schreib-E/A-Anfragen (Eingabe und Ausgabe) auf Datenseiten zu verarbeiten. Ändern Sie es entsprechend der Anzahl Ihrer CPU-Kerne. Der Standardwert ist 4
# Hinweis: Diese beiden Parameter unterstützen keine dynamischen Änderungen. Sie müssen die Parameter zu my.cnf hinzufügen und den MySQL-Dienst nach der Änderung neu starten. Der zulässige Wertebereich liegt zwischen 1 und 64.

innodb_thread_concurrency = 0
# Die Standardeinstellung ist 0, was bedeutet, dass es keine Begrenzung für die Anzahl gleichzeitiger Verbindungen gibt. Es wird empfohlen, den Wert auf 0 zu setzen, um die Mehrkernverarbeitungsfunktionen der CPU besser zu nutzen und die Anzahl gleichzeitiger Verbindungen zu erhöhen innodb_purge_threads = 1
# Der Bereinigungsvorgang in InnoDB ist ein Vorgangstyp, bei dem unbrauchbare Daten regelmäßig wiederverwendet werden. In früheren Versionen war der Bereinigungsvorgang Teil des Hauptthreads, was bedeutete, dass er während der Ausführung andere Datenbankvorgänge blockieren konnte.
# Ab MySQL 5.5.X wird dieser Vorgang in einem unabhängigen Thread ausgeführt und unterstützt mehr Parallelität. Benutzer können wählen, ob für den Bereinigungsvorgang ein separater Thread verwendet werden soll, indem sie den Konfigurationsparameter innodb_purge_threads festlegen. Standardmäßig ist der Parameter auf 0 gesetzt (keinen separaten Thread verwenden). Wenn er auf 1 gesetzt ist, bedeutet dies, dass ein separater Bereinigungsthread verwendet wird. Empfohlener Wert: 1

innodb_flush_log_at_trx_commit = 2
# 0: Wenn der Wert von innodb_flush_log_at_trx_commit 0 ist, wird der Protokollpuffer jede Sekunde auf die Festplatte geleert und es wird kein Vorgang ausgeführt, wenn die Transaktion festgeschrieben wird (die Ausführung wird vom MySQL-Master-Thread durchgeführt).
# Der Hauptthread schreibt den Redo-Log-Puffer jede Sekunde in die Redo-Log-Datei (REDO LOG) auf der Festplatte. Unabhängig davon, ob die Transaktion festgeschrieben wurde) ist die Standardprotokolldatei ib_logfile0, ib_logfile1
# 1: Wenn der Standardwert 1 festgelegt ist, wird der Protokollpuffer bei jedem Festschreiben einer Transaktion in das Protokoll geleert.
# 2: Wenn auf 2 gesetzt, wird bei jedem Festschreiben einer Transaktion ein Protokoll geschrieben, der Leervorgang wird jedoch nicht ausgeführt. Die Protokolldatei wird jede Sekunde aktualisiert. Es ist zu beachten, dass es keine Garantie dafür gibt, dass die Daten jede Sekunde zu 100 % auf die Festplatte geschrieben werden, da dies von der Planung des Prozesses abhängt.
# Bei jedem Festschreiben einer Transaktion werden die Daten in das Transaktionsprotokoll geschrieben. Der Schreibvorgang ruft hier nur den Schreibvorgang des Dateisystems auf, und das Dateisystem verfügt über einen Cache. Daher kann dieser Schreibvorgang nicht garantieren, dass die Daten auf die physische Festplatte geschrieben wurden. # Der Standardwert 1 soll vollständige ACID sicherstellen. Natürlich können Sie dieses Konfigurationselement auf einen anderen Wert als 1 setzen, um eine höhere Leistung zu erzielen. Wenn das System jedoch abstürzt, verlieren Sie 1 Sekunde an Daten.
# Wenn auf 0 gesetzt, geht die letzte Sekunde der Transaktionen verloren, wenn der mysqld-Prozess abstürzt. Wenn der Wert auf 2 gesetzt ist, gehen die Daten der letzten Sekunde nur verloren, wenn das Betriebssystem abstürzt oder es zu einem Stromausfall kommt. InnoDB ignoriert diesen Wert bei der Wiederherstellung.
# Zusammenfassung# Die Einstellung auf 1 ist natürlich am sichersten, die Leistung ist jedoch am schlechtesten (im Verhältnis zu den anderen beiden Parametern, aber nicht inakzeptabel). Wenn Datenkonsistenz und -integrität nicht erforderlich sind, können Sie den Wert auf 2 setzen. Wenn Sie nur Leistung benötigen, z. B. einen Protokollserver mit hoher Parallelität, setzen Sie den Wert auf 0, um eine höhere Leistung zu erzielen. innodb_log_buffer_size = 2M
# Dieser Parameter bestimmt die von diesen Protokolldateien verwendete Speichergröße in M. Größere Puffer verbessern die Leistung, unerwartete Fehler führen jedoch zu Datenverlust. MySQL-Entwickler empfehlen, den Wert zwischen 1 und 8 MB einzustellen innodb_log_file_size = 32 MB
# Dieser Parameter bestimmt die Größe der Datenprotokolldatei. Eine größere Einstellung kann die Leistung verbessern, erhöht aber auch die erforderliche Zeit zur Wiederherstellung einer ausgefallenen Datenbank. innodb_log_files_in_group = 3
# Um die Leistung zu verbessern, kann MySQL Protokolldateien zyklisch in mehrere Dateien schreiben. Empfohlene Einstellung: 3

innodb_max_dirty_pages_pct = 90
# Der InnoDB-Hauptthread aktualisiert die Daten im Cache-Pool, um das Verhältnis schmutziger Daten auf unter 90 % zu senken.

innodb_lock_wait_timeout = 120 
#Timeout in Sekunden, die eine InnoDB-Transaktion auf eine Sperre warten kann, bevor sie zurückgesetzt wird. InnoDB erkennt Transaktions-Deadlocks in seinen eigenen Sperrtabellen automatisch und führt ein Rollback der Transaktion durch. InnoDB bemerkt die Sperreinstellungen mit der Anweisung LOCK TABLES. Der Standardwert beträgt 50 Sekunden. bulk_insert_buffer_size = 8M
# Größe des Batch-Insert-Cache. Dieser Parameter ist für die MyISAM-Speicher-Engine. Geeignet zur Verbesserung der Effizienz beim gleichzeitigen Einfügen von 100–1000+ Datensätzen. Der Standardwert ist 8M. Es kann je nach Datenmenge verdoppelt werden.

myisam_sort_buffer_size = 8M
# MyISAM legt die Größe des Puffers fest, der beim Wiederherstellen einer Tabelle verwendet wird. Der Puffer, der beim Sortieren eines MyISAM-Index während REPAIR TABLE oder beim Erstellen eines Index mit CREATE INDEX oder ALTER TABLE zugewiesen wird, ist myisam_max_sort_file_size = 10G
# Verwenden Sie die Quicksort-Indexmethode nicht zum Erstellen eines Index, wenn die temporäre Datei größer als der Index wird. Hinweis: Dieser Parameter wird in Bytes angegeben. myisam_repair_threads = 1
# Wenn der Wert größer als 1 ist, erstellen Sie während der Reparatur durch Sortieren parallel MyISAM-Tabellenindizes (jeder Index in seinem eigenen Thread). 

interaktives_Timeout = 28800
# Die Anzahl der Sekunden, die der Server auf Aktivität wartet, bevor eine interaktive Verbindung geschlossen wird. Ein interaktiver Client ist als ein Client definiert, der die Option CLIENT_INTERACTIVE in mysql_real_connect() verwendet. Standardwert: 28800 Sekunden (8 Stunden)

Wartezeitüberschreitung = 28800
# Die Anzahl der Sekunden, die der Server auf Aktivität wartet, bevor eine nicht interaktive Verbindung geschlossen wird. Wenn der Thread gestartet wird, wird der Wait_Timeout-Wert der Sitzung entsprechend dem globalen Wait_Timeout-Wert oder dem globalen Interactive_Timeout-Wert initialisiert.
# Hängt vom Clienttyp ab (definiert durch die Verbindungsoption CLIENT_INTERACTIVE von mysql_real_connect()). Standardwert: 28800 Sekunden (8 Stunden)
# Die maximale Anzahl der vom MySQL-Server unterstützten Verbindungen ist begrenzt. Da jede Verbindung Speicher verbraucht, hoffen wir, dass der Client eine Verbindung zum MySQL-Server herstellt und die entsprechenden Vorgänge abschließt.
# Sollte die Verbindung trennen und den belegten Speicher freigeben. Wenn Ihr MySQL-Server eine große Anzahl inaktiver Verbindungen hat, verbrauchen diese nicht nur vergeblich Speicher, sondern wenn sich die Verbindungen weiterhin ansammeln, ohne getrennt zu werden,
# Irgendwann wird das Verbindungslimit des MySQL-Servers erreicht und der Fehler „zu viele Verbindungen“ wird gemeldet. Der Wert von wait_timeout sollte basierend auf den Betriebsbedingungen des Systems festgelegt werden.
# Nachdem das System eine Weile ausgeführt wurde, können Sie den Befehl show processlist verwenden, um den aktuellen Systemverbindungsstatus anzuzeigen. Wenn Sie feststellen, dass sich viele Verbindungsprozesse im Ruhezustand befinden, bedeutet dies, dass der Parameter zu groß eingestellt ist.
# Es kann entsprechend kleiner eingestellt werden. Damit es wirksam ist, müssen interactive_timeout und wait_timeout gleichzeitig festgelegt werden.

[mysqldump]
schnell
max_allowed_packet = 16M #Die maximale Paketlänge, die vom Server gesendet und empfangen wird [myisamchk]
Schlüsselpuffergröße = 8 M
Sortierpuffergröße = 8 M
Lesepuffer = 4M
Schreibpuffer = 4M

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Verwenden Sie Shell-Skripte, um MySQL hinzuzufügen, zu löschen, zu ändern und zu überprüfen und my.cnf zu konfigurieren
  • Lösen Sie das Problem, dass bei der Installation von MySQL unter Linux keine my.cnf-Datei in /etc vorhanden ist
  • Lösung für das Problem, dass die Konfigurationsdatei my.cnf in MySQL aufgrund von Berechtigungsproblemen nicht gestartet werden kann
  • Leistungsoptimierung des MySQL-Dienstes – Konfigurationsanweisungen für my.cnf_my.ini (16 GB Speicher)
  • Lösung für die Ineffektivität der Änderung der MySQL my.cnf-Konfiguration
  • Details zur Optimierung der my.cnf-Parameterkonfiguration in MySQL 5.5.x
  • Detaillierte Erläuterung der Optimierung der MySQL-Konfigurationsdatei my.cnf (mysql5.5)
  • MySQL-Leistungsoptimierungspfad --- Ändern Sie die Konfigurationsdatei my.cnf
  • MariaDB (MySQL-Zweig) my.cnf-Konfigurationsdatei, chinesische kommentierte Version
  • MySQL-Konfigurationsdatei my.cnf-Parameteroptimierung und ausführliche Erklärung auf Chinesisch
  • Detaillierte Erklärung der MySQL-Konfigurationsdatei my.cnf auf Chinesisch, mit Weitergabe von Methoden zur MySQL-Leistungsoptimierung
  • Vergleich der chinesischen Version der MySQL-Konfigurationsdatei my.cnf
  • Detaillierte Analyse der MySQL-Konfigurationsparameter my.ini/my.cnf
  • Details zur Reihenfolge, in der MySQL my.cnf liest

<<:  So kapseln Sie Abfragekomponenten basierend auf Element-UI Schritt für Schritt

>>:  Tutorial zur HTML-Tabellenauszeichnung (10): Zell-Padding-Attribut CELLPADDING

Artikel empfehlen

Eine kurze Analyse des Zustandsverständnisses von React

Wie definiert man komplexe Komponenten (Klassenko...

Ausführliche Erklärung des Sperrmechanismus in MySQL

Vorwort Um die Konsistenz und Integrität der Date...

Einführung in die Verwendung von Alt- und Titelattributen von HTML-Img-Tags

Wenn Browser-Anbieter die Standards umgehen und ei...

Analyse der Vorteile von path.join() in Node.js

Sie fragen sich möglicherweise, warum Sie die Met...

Anwendungsbeispiele für React Hooks (6 gängige Hooks)

1. useState: Funktionskomponenten Status geben An...

Vue-Handschrift-Ladeanimationsprojekt

Wenn die Seite nicht reagiert, ist die Anzeige de...

Analyse des Implementierungsprozesses für die Tomcat maxPostSize-Einstellung

1. Warum maxPostSize festlegen? Der Tomcat-Contai...

So erstellen Sie mit Squid einen Proxyserver für http und https

Als wir nginx eingeführt haben, haben wir nginx a...

CSS float (float, clear) beliebte Erklärung und Erfahrungsaustausch

Ich bin schon vor langer Zeit mit CSS in Berührun...

Implementierungsbeispiel für die Message Board-Funktion von Node.js+Express

Inhaltsverzeichnis Nachrichtenbrett Erforderliche...

Der Unterschied zwischen HTML Empty Link href="#" und href="javascript:void(0)"

# enthält eine Standortinformation. Der Standardan...

Docker installiert Elasticsearch7.6-Cluster und legt Passwort fest

Ab Elasticsearch 6.8 dürfen kostenlose Benutzer d...