Dieser Artikel ist eine MySQL-Konfigurationsdateilösung für ein 4G-Speichersystem (hauptsächlich wird MySQL nur mit InnoDB-Tabellen ausgeführt und es werden mehrere Verbindungen verwendet, um komplexe Abfragen durchzuführen). #Konfigurationsinformationen starten #Beschreibung: 4 GB Speicher, nur InnoDB, ACID, wenige Verbindungen, schwere Abfragen # Typ: System #Ende der Konfigurationsinformationen # Sie können diese Datei nach /etc/my.cnf kopieren, um globale Optionen festzulegen, nach mysql-data-dir/my.cnf, um serverspezifische Optionen festzulegen (in dieser Installation ist das Verzeichnis C:mysqldata), oder nach ~/.my.cnf, um benutzerspezifische Optionen festzulegen. # # In dieser Datei können Sie alle permanenten Optionen verwenden, die ein Programm unterstützt. # Wenn Sie wissen möchten, welche Optionen das Programm unterstützt, verwenden Sie beim Ausführen des Programms die Option „--help“. # # Genauere Informationen zu den einzelnen Optionen finden Sie auch im Handbuch. # Die folgenden Optionen werden von MySQL-Clientanwendungen gelesen. # Beachten Sie, dass nur die MySQL-Standard-Clientanwendung diesen Abschnitt garantiert lesen kann. # Wenn Ihr eigenes MySQL-Clientprogramm diese Werte berücksichtigen soll, müssen Sie es während der Initialisierung der MySQL-Clientbibliothek als Option angeben. # [Kunde] #password = [Ihr_Passwort] Port = 3306 Socket = /tmp/mysql.sock # *** ANWENDUNGSSPEZIFISCHE OPTIONEN UNTEN *** # MySQL-Server. [mysqld] # Allgemeine Konfigurationsoptionen Port = 3306 Socket = /tmp/mysql.sock # back_log bezieht sich auf die Anzahl der Verbindungen, die in der Abhörwarteschlange des Betriebssystems gehalten werden, bevor der MySQL-Verbindungsmanager-Thread sie verarbeitet. # Wenn Sie eine sehr hohe Verbindungsrate haben und Fehlermeldungen vom Typ „Verbindung abgelehnt“ erhalten, sollten Sie diesen Wert erhöhen. # Den Maximalwert für diesen Parameter finden Sie in Ihrer Systemdokumentation. # Der Versuch, den Backlog höher als das Limit Ihres Betriebssystems einzustellen, hat keine Auswirkungen. back_log = 50 # Sie müssen überhaupt nicht auf einem TCP/IP-Port lauschen. # Dies kann eine Sicherheitsverbesserung sein, wenn alle auf demselben Host ausgeführten Prozesse eine Verbindung zu mysqld herstellen müssen. # Die gesamte Interaktion mit mysqld muss über Unix-Sockets oder benannte Pipes erfolgen. # Beachten Sie, dass die Verwendung dieser Option unter Windows ohne Aktivierung von Named Pipes (über die Option „enable-named-pipe“) mysqld unbrauchbar macht. # #Netzwerken überspringen # Die maximale Anzahl gleichzeitiger Sitzungen, die MySQL zulässt. # Eine der Verbindungen wird für Benutzer mit dem SUPER-Privileg reserviert, sodass sich Administratoren anmelden können, auch wenn das Verbindungslimit erreicht ist. max_Verbindungen = 100 # Maximale Anzahl zulässiger Fehler pro Host. # Wenn dieses Limit erreicht ist, blockiert der Host Verbindungen zum MySQL-Server, bis „FLUSH HOSTS“ ausgeführt oder der Server neu gestartet wird. # Ungültige Passwörter und andere Fehler während der Verbindungsphase führen zu einer Erhöhung dieses Wertes. # Siehe die Statusvariable „Aborted_connects“ des globalen Zählers. max_connect_errors = 10 # Anzahl der von allen Threads geöffneten Tabellen. # Durch Erhöhen dieses Wertes erhöht sich die Anzahl der von mysqld benötigten Datei-Deskriptoren. # Daher müssen Sie sicherstellen, dass die Anzahl der geöffneten Dateien in der Variablen „open-file-limit“ im Abschnitt „mysqld-Sicherheit“ auf mindestens 4096 festgelegt ist. table_open_cache = 2048 # Externe Sperren auf Dateiebene aktivieren. # Das Aktivieren der Dateisperre wirkt sich negativ auf die Leistung aus. Verwenden Sie sie daher nur, wenn Sie mehrere Datenbankinstanzen auf denselben Dateien ausführen (beachten Sie, dass dennoch einige Einschränkungen gelten) oder wenn Sie andere Software verwenden, die auf der Sperrung von MyISAM-Tabellen auf Dateiebene basiert. #externe-verriegelung # Die maximale Größe eines Abfragepakets, das der Server verarbeiten kann, und die maximale Abfragegröße, die der Server verarbeiten kann (wichtig beim Arbeiten mit großen BLOB-Feldern). # Für jede Verbindung dynamisch erweitern. max_allowed_packet = 16M # Die Größe des Caches, der für Binärprotokoll-SQL-Anweisungen in einer Transaktion verwaltet werden kann. # Wenn Sie häufig große Transaktionen mit mehreren Anweisungen verwenden, können Sie diesen Wert erhöhen, um eine bessere Leistung zu erzielen. # Alle Anweisungen einer Transaktion werden im Binärlog-Cache zwischengespeichert und unmittelbar nach einem COMMIT in das Binärlog geschrieben. # Wenn die Transaktion größer als dieser Wert ist, wird stattdessen eine temporäre Datei auf der Festplatte verwendet. # Dieser Puffer wird jeder Verbindung bei der ersten Aktualisierungsanweisung einer Transaktion zugewiesen. binlog_cache_size = 1M # Maximal zulässige Größe einer einzelnen HEAP-Tabelle (Im Arbeitsspeicher). # Diese Option schützt vor dem versehentlichen Erstellen einer sehr großen HEAP-Tabelle, die andernfalls alle Speicherressourcen verbrauchen würde. maximale Heap-Tabellengröße = 64 M # Der Sortierpuffer wird zum Sortieren für einige ORDER BY- und GROUP BY-Abfragen verwendet. # Wenn sortierte Daten nicht in den Sortierpuffer passen, wird stattdessen eine festplattenbasierte Mergesortierung verwendet – siehe Statusvariable „Sort_merge_passes“. # Wenn eine Sortierung erforderlich ist, wird sie jedem Thread zugewiesen. Sortierpuffergröße = 8 M # Dieser Puffer wird zur Optimierung von FULL JOIN (JOIN ohne Index) verwendet. # Wie dem auch sei, dieser JOIN hat in den meisten Fällen eine sehr schlechte Leistung, aber wenn Sie diese Variable auf einen großen Wert setzen, werden die Auswirkungen auf die Leistung reduziert. # Siehe die Statusvariable „Select_full_join“ für eine bestimmte Anzahl von FULL JOINs. # Wenn FULL JOIN gefunden wird, wird es jedem Thread zugewiesen. Join-Puffergröße = 8 M # Wir speichern viele wiederverwendbare Threads in einem Cache. # Wenn ein Client die Verbindung trennt und die Anzahl der Threads davor die thread_cache_size nicht überschreitet, werden die Threads des Clients im Cache platziert. # Wenn Sie viele neue Verbindungen haben, wird dadurch die Anzahl der zu erstellenden Threads drastisch reduziert. # (Wenn Sie über eine gute Threading-Implementierung verfügen, führt dies normalerweise nicht zu einer spürbaren Leistungsverbesserung.) Thread-Cache-Größe = 8 # Dadurch kann eine Anwendung dem Thread-System einen Hinweis auf die gewünschte Anzahl gleichzeitig auszuführender Threads geben. # Dieser Wert ist nur auf Systemen sinnvoll, die den Funktionsaufruf thread_concurrency() unterstützen (wie z. B. Sun Solaris). # Sie sollten das 2/4/6/...-fache der Anzahl der CPUs für Thread_Concurrency versuchen. Thread_Parallelität = 8 # Der Abfragecache wird verwendet, um SELECT-Ergebnisse zwischenzuspeichern und sie später zurückzugeben, ohne die gleiche Abfrage tatsächlich erneut auszuführen. # Wenn Sie viele gleiche Abfragen haben und die Tabellen selten ändern, führt die Aktivierung des Abfragecaches zu erheblichen Geschwindigkeitsverbesserungen. # Bitte sehen Sie sich die Statusvariable „Qcache_lowmem_prunes“ an, um zu überprüfen, ob der aktuelle Wert für Ihre Last hoch genug ist. # HINWEIS: Wenn sich Ihre Tabellen häufig ändern oder Ihre Abfragen jedes Mal anderer Natur sind, führt das Zwischenspeichern der Abfragen zu Verlangsamungen, anstatt zu Leistungsverbesserungen. Abfrage-Cachegröße = 64 M # Nur zwischengespeicherte Ergebnissätze sind kleiner als dieses Limit. # Dadurch kann verhindert werden, dass ein Abfragecache mit einem sehr großen Ergebnissatz alle anderen Abfrageergebnisse überschreibt. query_cache_limit = 2M # Mindestwortlänge für die Indizierung der Volltextsuche. # Wenn Sie kürzere Wörter abrufen müssen, möchten Sie dies möglicherweise reduzieren. # Beachten Sie, dass Sie Ihren FULLINDEX-Index neu erstellen müssen, nachdem Sie diesen Wert geändert haben. ft_min_word_len = 4 # Wenn Ihr System den Funktionsaufruf memlock() unterstützt, möchten Sie diese Option möglicherweise aktivieren (um MySQL so auszuführen, dass es im Speicher gesperrt bleibt und ein potenzielles Auslagern bei hohem Speicherdruck vermieden wird). # Das ist sehr gut für die Leistung. #memlock # Der beim Erstellen einer neuen Tabelle zu verwendende Standardtabellentyp, wenn während der Anweisung CREATE TABLE kein anderer angegeben wird. Standard-Speicher-Engine = MYISAM # Die zu verwendende Thread-Stack-Größe. # Diese Speichermenge wird beim Verbinden immer reserviert. # MySQL selbst benötigt normalerweise nicht mehr als 64 KB Speicher. Wenn Sie jedoch Ihre eigenen UDF-Stapelfunktionen verwenden oder Ihr System für bestimmte Vorgänge mehr Stapel benötigt, sollten Sie diesen Wert möglicherweise höher einstellen. Thread-Stapel = 192 KB # Legen Sie die Standardisolationsebene für Transaktionen fest. # Verfügbare Ebenen sind: READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE. transaction_isolation = WIEDERHOLBARES LESEN # Maximale Größe interner (im Arbeitsspeicher befindlicher) temporärer Tabellen. # Wenn eine Tabelle diesen Wert überschreitet, wird sie automatisch in eine festplattenbasierte Tabelle konvertiert. # Diese Einschränkung gilt für eine einzelne Tabelle, aber es kann mehrere solcher Tabellen geben. temporäre Tabellengröße = 64 M # Binäres Protokollieren aktivieren. # Dies ist erforderlich, um in einer Replikationskonfiguration als MASTER zu fungieren. # Wenn Sie in der Lage sein müssen, von Ihrem letzten Sicherungszeitpunkt aus wiederherzustellen, benötigen Sie auch die Binärprotokollierung. log-bin = mysql-bin # Empfohlenes Binärprotokollformat – gemischt. binlog_format = gemischt # Wenn Sie verkettete Slave-Server (A->B->C) zur Replikation verwenden, müssen Sie diese Option auf Server B aktivieren. # Es ermöglicht Protokollaktualisierungen durch die Aufzeichnung von Protokollen im Binärprotokoll des Slave-Servers über den Slave-Server-Thread. #log_slave_updates # Vollständige Abfrageprotokollierung aktivieren. Jede Anfrage, die der Server erhält (auch syntaktisch falsche), wird protokolliert. # Dies ist nützlich zum Debuggen, für den Produktionseinsatz ist es normalerweise deaktiviert. #Protokoll # Warnungen in die Fehlerprotokolldatei drucken. # Wenn Sie Probleme mit MySQL haben, sollten Sie die Warnungsprotokollierung aktivieren und das Fehlerprotokoll auf mögliche Erklärungen überprüfen. #log_warnings # Langsame Abfragen aufzeichnen. # Langsame Abfragen sind Abfragen, die länger dauern als die in „long_query_time“ definierte Gesamtzeit, oder Abfragen, die keine Indizes verwenden, wenn log_short_format nicht aktiviert ist. # Wenn Sie dem System häufig neue Abfragen hinzufügen, ist es eine gute Idee, dies zu aktivieren. langsames_Abfrageprotokoll # Alle Abfragen, die länger als diese Gesamtzeit dauern, werden als langsam betrachtet. # Verwenden Sie hier nicht den Wert „1“, da dies dazu führt, dass selbst sehr schnelle Abfragen von Zeit zu Zeit protokolliert werden (MySQL misst die Zeit derzeit nur auf die nächste Sekunde genau). lange_Abfragezeit = 2 # Von MySQL zum Speichern temporärer Dateien verwendetes Verzeichnis. # Es wird beispielsweise verwendet, um große festplattenbasierte Sortierungen sowie interne und explizite temporäre Tabellen durchzuführen. # Wenn Sie keine sehr große temporäre Datei erstellen, ist es von Vorteil, sie in einem Swapfs/Tmpfs-Dateisystem abzulegen. # Alternativ können Sie es auf einer dedizierten Festplatte speichern. # Sie können mehrere Pfade durch ";" getrennt angeben – diese werden später in einer Schleife verwendet. #tmpdir = /tmp # *** Einstellungen im Zusammenhang mit der Replikation # Eine eindeutige Serveridentifikationsnummer zwischen 1 und 2^32-1. # Dieser Wert ist sowohl für den Master- als auch für den Slave-Server erforderlich. # Wenn „Master-Host“ nicht festgelegt ist, wird der Standardwert auf 1 gesetzt. Wenn dieser Wert jedoch weggelassen wird, fungiert MySQL nicht als Master-Server. Server-ID = 1 # Replikations-Slave (um dies zu verwenden, kommentieren Sie den Master-Abschnitt aus). # # Um diesen Host als Replikations-Slave zu konfigurieren, können Sie zwischen den folgenden zwei Methoden wählen: # # 1) Verwenden Sie den Befehl CHANGE MASTER TO (vollständig beschrieben in unserem Handbuch) – die Syntax lautet: # # CHANGE MASTER TO MASTER_HOST = 〈Host〉, MASTER_PORT = 〈Port〉, MASTER_USER = 〈Benutzer〉, MASTER_PASSWORD = 〈Passwort〉; # # Ersetzen Sie 〈Host〉, 〈Benutzer〉, 〈Passwort〉 durch eine in Anführungszeichen gesetzte Zeichenfolge und 〈Port〉 ist die Portnummer des Masterservers (Standard ist 3306). # # Beispiel: # # ÄNDERN SIE MASTER IN MASTER_HOST = „125.564.12.1“, MASTER_PORT = 3306, MASTER_USER = „joe“, MASTER_PASSWORD = „geheim“; # # oder # # 2) Legen Sie die folgenden Variablen fest. Wenn Sie diese Methode jedoch wählen, wird der Slave beim ersten Start der Replikation (auch wenn diese nicht erfolgreich ist, z. B. wenn Sie kein Kennwort in MASTER_PASSWORD eingegeben haben und die Verbindung zum Slave fehlschlägt) eine Datei master.info erstellen. Alle späteren Änderungen an den Werten der folgenden Variablen in dieser Datei werden ignoriert und von den Verbindungen in der Datei master.info überschrieben, sofern Sie den Slave nicht herunterfahren, master.info löschen und den Slave neu starten. # Aus diesem Grund möchten Sie möglicherweise die folgenden Zeilen unverändert lassen (kommentieren) und stattdessen CHANGE MASTER TO (siehe oben) verwenden. # # Erfordert eine eindeutige ID zwischen 2 und 2^32-1 (unterscheidet sich vom primären Server). # Wenn „Master-Host“ festgelegt ist, ist der Standardwert 2. # Wenn es jedoch weggelassen wird, funktioniert es nicht als Slave-Server. #Server-ID = 2 # # Der Replikationsmaster für diesen Slave – erforderlich. #master-host = 〈Hostname〉 # # Benutzername, den der Slave zur Authentifizierung bei der Verbindung mit dem Master verwendet – erforderlich. #master-user = 〈Benutzername〉 # # Passwort, das der Slave zur Authentifizierung bei der Verbindung mit dem Master verwendet – erforderlich. #master-password = 〈Passwort〉 # # Port, auf dem der Masterserver lauscht. # Optional – Standardmäßig 3306. #master-port = 〈Port〉 # Den Slave-Server schreibgeschützt machen. # Nur Benutzer mit dem SUPER-Privileg und Replikations-Slave-Server-Threads können die Daten ändern. # Damit können Sie sicherstellen, dass keine Anwendung versehentlich Daten auf dem Slave statt auf dem Master ändert. #schreibgeschützt #*** MyISAM-spezifische Optionen # Die Größe des Schlüsselpuffers, der zum Zwischenspeichern von Indexblöcken für MyISAM-Tabellen verwendet wird. # Stellen Sie es nicht auf mehr als 30 % Ihres verfügbaren Speichers ein, da das Betriebssystem auch etwas Speicher zum Zwischenspeichern von Zeilen benötigt. # Auch wenn Sie keine MyISAM-Tabellen verwenden, sollten Sie es trotzdem auf 8-64 M einstellen, da es auch für interne temporäre Festplattentabellen verwendet wird. Schlüsselpuffergröße = 32 M # Die Größe des Puffers, der für vollständige Tabellenscans von MyISAM-Tabellen verwendet wird. # Wenn ein vollständiger Tabellenscan erforderlich ist, wird er jedem Thread zugewiesen. Lesepuffergröße = 2 M # Beim Lesen von Zeilen in einer geordneten Sortierung können die Zeilen über diesen Puffer gelesen werden, um Suchvorgänge auf der Festplatte zu vermeiden. # Wenn Sie diesen Wert sehr hoch festlegen, können Sie die Leistung von ORDER BY erheblich verbessern. # Bei Bedarf jedem Thread zuweisen. read_rnd_buffer_size = 16M # MyISAM verwendet einen speziellen baumartigen Cache, um Masseneinfügungsvorgänge (d. h. INSERT ... SELECT, INSERT ... VALUES(...) und LOAD DATA INFILE) zu beschleunigen. # Diese Variable begrenzt die Größe des Cache-Baums für jeden Thread in Bytes. # Wenn Sie den Wert auf 0 setzen, wird diese Optimierung deaktiviert. # Um die Leistung zu optimieren, stellen Sie den Wert nicht größer als „key_buffer_size“ ein. # Dieser Puffer wird zugewiesen, wenn eine große Anzahl von Einfügungen erkannt wird. bulk_insert_buffer_size = 64 MB # Dieser Puffer wird zugewiesen, wenn MySQL einen Index durch REPAIR, OPTIMIZE, ALTER-Tabellenanweisungen und LOAD DATA INFILE für eine leere Tabelle neu erstellen muss. # Es wird pro Thread zugewiesen, seien Sie also vorsichtig mit großen Einstellungen. myisam_sort_buffer_size = 128 M # Die maximale Größe der temporären Datei, die MySQL beim Neuerstellen eines Indexes zulässt (während REPAIR, ALTER TABLE oder LOAD DATA INFILE). # Wenn „Dateigröße“ größer als dieser Wert ist, wird der Index über den Schlüsselcache erstellt (was langsamer ist). myisam_max_sort_file_size = 10 G # Wenn eine Tabelle mehr als einen Index hat, kann MyISAM beim Sortieren mehr als einen Thread verwenden, um sie parallel zu reparieren. # Dies ist sinnvoll, wenn Sie über mehrere CPUs und genügend Speicher verfügen. myisam_repair_threads = 1 # MyISAM-Tabellen automatisch prüfen und reparieren, die nicht ordnungsgemäß geschlossen wurden. myisam_recover # *** INNODB-SPEZIFISCHE OPTIONEN *** # Verwenden Sie diese Option, wenn Sie einen MySQL-Server mit aktiviertem InnoDB haben und nicht vorhaben, es zu verwenden. # Dadurch können Arbeitsspeicher und Speicherplatz gespart und die Geschwindigkeit erhöht werden. #innodb überspringen # Zusätzlicher Speicherpool, den InnoDB zum Speichern von Metadateninformationen verwendet. # Wenn InnoDB zu diesem Zweck mehr Speicher benötigt, beginnt es, diesen vom Betriebssystem zuzuweisen. # Da dies auf den meisten aktuellen Betriebssystemen schnell genug ist, müssen Sie diesen Wert normalerweise nicht ändern. # SHOW INNODB STATUS zeigt die aktuelle Gesamtnutzung an. innodb_additional_mem_pool_size = 16 M # InnoDB verwendet im Gegensatz zu MyISAM einen Pufferpool zum Zwischenspeichern von Indizes und Zeilendaten. # Je höher Sie diesen Wert einstellen, desto weniger Festplatten-E/A ist beim Zugriff auf die erforderlichen Daten in der Tabelle erforderlich. # Auf einem dedizierten Datenbankserver können Sie diesen Parameter auf 80 % der physischen Speichergröße der Maschine einstellen. # Stellen Sie diesen Wert nicht zu groß ein, da ein Wettbewerb um den physischen Speicher zu Paging im Betriebssystem führen kann. # Beachten Sie, dass Sie auf 32-Bit-Systemen möglicherweise auf 2–3,5 GB Benutzerspeicher pro Prozessor beschränkt sind. Stellen Sie diesen Wert daher nicht zu hoch ein. innodb_buffer_pool_size = 2G # InnoDB speichert Daten in einer oder mehreren Datendateien, um einen Tablespace zu bilden. # Wenn Sie ein einzelnes physisches Gerät für Ihre Daten haben, reicht eine einzelne automatisch erweiterte Datei aus. # In anderen Fällen ist eine einzelne Datei pro Gerät eine sehr gute Wahl. # Sie können InnoDB auch so konfigurieren, dass es Rohdatenträgerpartitionen verwendet – weitere Informationen hierzu finden Sie im Handbuch. innodb_data_file_path = ibdata1:10M:autoextend # Wenn Sie möchten, dass InnoDB-Tablespace-Dateien woanders gespeichert werden, legen Sie diese Option fest. # Der Standard ist das MySQL-Datenverzeichnis. #innodb_data_home_dir = 〈Verzeichnis〉 # Die Anzahl der für asynchrone IO-Operationen verwendeten IO-Threads. # Dieser Wert ist auf Unix-Systemen fest auf 4 codiert, unter Windows kann jedoch eine höhere Zahl für den Festplatten-E/A von Vorteil sein. innodb_file_io_threads = 4 # Wenn Sie eine Beschädigung des InnoDB-Tabellenbereichs feststellen, können Sie Ihre Tabellen problemlos exportieren, indem Sie diesen Wert auf einen Wert ungleich Null setzen. # Beginnen Sie mit einem Wert von 1 und erhöhen Sie ihn, bis Sie die Tabelle erfolgreich exportieren können. #innodb_force_recovery=1 # Die Anzahl der im InnoDB-Kernel zulässigen Threads. # Der optimale Wert hängt stark von der Anwendung, der Hardware und den Planungseigenschaften des Betriebssystems ab. # Ein zu hoher Wert kann zu Thread-Thrashing führen. innodb_thread_concurrency = 16 # Wenn auf 1 gesetzt, schreibt InnoDB das Transaktionsprotokoll bei jedem Commit auf die Festplatte (bietet volles ACID-Verhalten). # Wenn Sie bei der Sicherheit Kompromisse eingehen möchten und kleine Transaktionen ausführen, können Sie 0 oder 2 verwenden, um den Festplatten-E/A für das Protokoll zu reduzieren. # Ein Wert von 0 bedeutet, dass Protokolle nur in die Protokolldatei geschrieben werden und die Protokolldatei etwa einmal pro Sekunde auf die Festplatte geschrieben wird. # Ein Wert von 2 bedeutet, dass bei jedem Commit Protokolle in die Protokolldatei geschrieben werden, die Protokolldatei jedoch nur etwa einmal pro Sekunde auf die Festplatte geschrieben wird. innodb_flush_log_at_trx_commit = 1 # Beschleunigen Sie das Herunterfahren von InnoDB. # Dadurch wird InnoDB daran gehindert, eine vollständige Bereinigung und Zusammenführung des Einfügepuffers durchzuführen, wenn es ausgeschaltet ist. # Dadurch kann sich die Herunterfahrzeit erheblich verlängern, InnoDB führt dies jedoch beim nächsten Start aus. #innodb_fast_shutdown # Die Größe des Puffers, der von InnoDB zum Puffern von Protokolldaten verwendet wird. # Sobald es voll ist, wird InnoDB es auf die Festplatte schreiben. # Da es ohnehin jede Sekunde aktualisiert wird, besteht keine Notwendigkeit, es sehr groß zu machen (oder sogar sehr lange Transaktionen durchzuführen). innodb_log_buffer_size = 8M # Die Größe jeder Protokolldatei in einer Protokollgruppe. # Sie können die kombinierte Größe der Protokolldateien auf 25 %–100 % Ihrer Pufferpoolgröße einstellen, um unnötiges dynamisches Leeren des Pufferpools und Neuschreiben von Protokolldateien zu vermeiden. # Beachten Sie jedoch, dass eine größere Protokolldateigröße den für den Wiederherstellungsprozess erforderlichen Zeitaufwand erhöht. innodb_log_file_size = 256 M # Die Gesamtzahl der Dateien in der Protokollgruppe. # Normalerweise ist ein Wert von 2-3 ausreichend. innodb_log_files_in_group = 3 # Speicherort der InnoDB-Protokolldateien. # Standardmäßig wird das Datenverzeichnis von MySQL verwendet. # Zur Verbesserung der Leistung möchten Sie dies möglicherweise einer dedizierten Festplatte oder einem RAID1-Volume zuweisen. #innodb_log_group_home_dir # Maximaler Prozentsatz schmutziger Seiten, der im InnoDB-Pufferpool zulässig ist. # Wenn es eintrifft, beginnt InnoDB mit der aggressiven Bereinigung, um zu vermeiden, dass alle leeren Seiten verbraucht werden. # Dies ist eine weiche Grenze und es gibt keine Garantie, dass sie eingehalten wird. innodb_max_dirty_pages_pct = 90 # Die von InnoDB für das Protokoll verwendete Flush-Methode. # Tablespaces verwenden immer die Double-Write-Flush-Logik. # Der Standardwert ist „fdatasync“, die andere Option ist „O_DSYNC“. #innodb_flush_method = O_DSYNC # Wie lange eine InnoDB-Transaktion warten soll, bis ihr eine Sperre gewährt wird, bevor ein Rollback durchgeführt wird. # InnoDB erkennt Transaktions-Deadlocks automatisch in seiner eigenen Sperrtabelle und führt ein Rollback der Transaktion durch. # Wenn Sie in derselben Transaktion den Befehl LOCK TABLES oder andere Speicher-Engines verwenden, die transaktionssicherer sind als InnoDB, kann später ein Deadlock auftreten, den InnoDB nicht auslösen kann. # In solchen Fällen sind Timeouts zur Fehlerbehebung hilfreich. innodb_lock_wait_timeout = 120 [mysqldump] # Puffern Sie nicht den gesamten Ergebnisset, bevor Sie ihn in die Datei schreiben. # Erforderlich beim Exportieren sehr großer Tabellen. schnell max_allowed_packet = 16M [mysql] kein automatisches Wiederaufwärmen # Erlaube UPDATE und DELETE nur mit Schlüsseln. #sichere-updates [myisamchk] Schlüsselpuffergröße = 512 M Sortierpuffergröße = 512 M Lesepuffer = 8 M Schreibpuffer = 8M [mysqlhotcopy] Interaktives Timeout [mysqld_safe] # Erhöhen Sie die Anzahl der Dateien, die pro Prozess geöffnet werden dürfen. # WARNUNG: Stellen Sie sicher, dass Sie die globalen Systemgrenzen hoch genug eingestellt haben! # Bei einer großen Anzahl geöffneter Tische ist ein hoher Wert erforderlich. Limit für geöffnete Dateien = 8192 Sie können die obigen Parametereinstellungen entsprechend Ihrer eigenen Implementierungssituation berücksichtigen. Das könnte Sie auch interessieren:- Beschreiben Sie kurz die MySQL InnoDB-Speicher-Engine
- MySQL-Lernzusammenfassung: Ein vorläufiges Verständnis des Architekturdesigns der InnoDB-Speicher-Engine
- MySQL-Lernen (VII): Detaillierte Erläuterung des Implementierungsprinzips des Innodb Storage Engine-Index
- Zusammenfassung der Unterschiede zwischen den MySQL-Speicher-Engines MyISAM und InnoDB
- Ein tiefer Einblick in die MySQL InnoDB-Speicher-Engine
- Detaillierte Analyse des MySQL 8.0-Speicherverbrauchs
- Detaillierte Erklärung zur Verwendung von MySQL-Speichertabellen und temporären Tabellen
- Zusammenfassung der speicherbezogenen Parameter von MySQL 8.0
- Detaillierte Erklärung, wie Sie den Speicherverbrauch in MySql reduzieren können
- Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
|