====== MySQL 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)): **Ubuntu Linux** - Folgende Datei anlegen ''/etc/mysql/conf.d/performance.cnf'': **Mac** - In der ''/etc/my.cnf'': [mysqld] Danach einfügen: group_concat_max_len=50000 max_allowed_packet = 16M table_open_cache = 512 sort_buffer_size = 2M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 64M default-storage-engine=InnoDB innodb_log_buffer_size=6M innodb_buffer_pool_size=664M innodb_thread_concurrency=8 **Windows:** Nutzen Sie Wordpad oder Notepad++ zum Bearbeiten!\\ Unter keinen Umständen dürfen Sie den Windows Editor/Notepad nutzen! #does not work with current root username skip-name-resolve #no read_buffer_size = 2M read_rnd_buffer_size = 8M ===== 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.5/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]]