====== MySQL konfigurieren und Geschwindigkeit optimieren ====== ^ **:!: ACHTUNG: ANLEITUNG OHNE GEWÄHR. ** ^ | Die Firma untermStrich software gmbh übernimmt keine Haftung für etwaige Schäden oder Fehler die direkt oder indirekt durch die Benutzung oder nicht Benutzung dieser Anleitung entstehen! | :!: Wenn Sie unter Windows bei der Konfiguration bereits Server gewählt haben, entspricht Ihre Konfiguration bereits in etwa dem Beispiel von unten. In diesem Fall ist meist keine weitere Optimierung notwendig. ===== Backup ===== **:!: ERSTELLEN SIE EIN BACKUP, __BEVOR__ SIE DIESE AKTIONEN AUSFÜHREN! ** ===== MySQL stoppen ===== Stoppen Sie den MySQL Server. ===== Konfiguration ===== **Windows** - In der aktuell aktiven ''my.ini'' zu finden unter ''C:\ProgramData\MySQL\MySQL Server XXX\my.ini'' ((XXX entspricht Ihrer Version)): **Windows:** Nutzen Sie [[https://notepad-plus-plus.org/|Notepad++]] oder Wordpad zum Bearbeiten!\\ Unter keinen Umständen dürfen Sie den Windows Editor/Notepad nutzen! **Ubuntu Linux** - Folgende Datei anlegen ''/etc/mysql/conf.d/performance.cnf'': **Mac** - In der ''/etc/my.cnf'': ==== Anpassungen ==== === MySQL 5.6 oder 5.7 === [mysqld] Danach einfügen: {{page>de:faq:mysql_optimieren5}} === MySQL 8.0 === [mysqld] Danach einfügen: {{page>de:faq:mysql_optimieren8}} Konfigurationsoptionen die nicht vorhanden sind, bitte einfach einfügen! ===== MySQL starten ===== Starten sie den MySQL Server. ===== Weiter optimieren ===== Lassen Sie danach die Benutzer 1-2 Stunden arbeiten. Öffnen Sie dann die MySQL Workbench und wählen Sie "Server Status". * {{:de:faq:server_opt1.png?nolink|}} Überprüfen Sie den Wert "InnoDB Buffer Usage". * {{:de:faq:server_opt2.png?nolink|}} Erhöhen Sie den Wert ''innodb_buffer_pool_size'', bis Sie merken, dass der Server nicht sofort nach dem Start nahezu 100% ausnutzt. Erhöhen Sie dazu den Wert und starten Sie den MySQL Server neu. ===== Wenn ein Datenbankupdate anstatt Minuten, Stunden benötigt ===== Dieses Problem tritt auf einigen wenigen Systemen mit MySQL 5.6 auf. Dieser Wert sollte nur nach Rücksprache mit untermStrich geändert werden: [mysqld] Danach einfügen: innodb_flush_log_at_trx_commit = 2 Beschreibung der Einstellung: * [[http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit]] * [[http://dev.mysql.com/doc/refman/5.1/de/innodb-parameters.html]]