Der Ratgeber kann Empfehlungen zu Server-Variablen durch Analyse der Server-Status-Variablen geben.
Bitte beachten Sie jedoch, dass diese Empfehlungen auf einfachen Berechnungen und Faustregeln basieren und nicht umbedingt auf Ihrem System funktionieren müssen.
Bevor Sie Änderungen an der Konfiguration vornehmen, seien Sie sich sicher, was Sie ändern und wie Sie die Änderungen rückgängig machen können. Falsche Optimierungen können sehr negative Effekte hervorrufen.
Der beste Weg das System zu optimieren ist es genau eine Einstellung auf einmal zu ändern, die Leistungsfähigkeit der Datenbank zu testen und die Änderungen zurückzunehmen, falls es keine klar messbaren Verbesserungen gab.
{"parse":{"errors":[]},"run":{"fired":[{"name":"Abfragen-Zwischenspeicher-Methode","precondition":"!fired('Query cache disabled')","formula":"Questions \/ Uptime","test":"value > 100","issue":"Suboptimale Zwischenspeicher-Methode.","recommendation":"Sie verwenden den MySQL-Anfragen-Cache mit einer relativ hohen Traffic-Datenbank. Es w\u00e4re \u00fcberlegenswert, <a href=\".\/url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fha-memcached.html\" target=\"_blank\" rel=\"noopener noreferrer\"> Memcached<\/a> statt MySQL Query Cache verwenden vor allem, wenn Sie mehrere Slaves einsetzen.","justification":"Der Abfragecache ist eingeschaltet und der Server empf\u00e4ngt 916 Abfragen pro Sekunde. Diese Regel wird aktiv, wenn es mehr als 100 Abfragen pro Sekunde gibt.","id":"Query caching method"},{"name":"Prozentwert der Sortierungen, die tempor\u00e4re Tabellen verursachen","formula":"Sort_merge_passes \/ Uptime","test":"value * 60 * 60 > 1","issue":"Zu viele Sortierungen verursachen tempor\u00e4re Tabellen.","recommendation":"Ziehen Sie in Betracht, <a href=\"server_variables.php?filter=sort_buffer_size&lang=de\">sort_buffer_size<\/a> und\/oder <a href=\"server_variables.php?filter=record_rnd_buffer&lang=de\">record_rnd_buffer<\/a> zu erh\u00f6hen, je nach verf\u00fcgbarem Speicher Ihres Systems.","justification":"Durchschnitt tempor\u00e4re Tabellen: 22.21 pro Minute, dieser Wert sollte kleiner als 1 pro Stunde sein.","id":"Rate of sorts that cause temporary tables"},{"name":"Zeilen sortieren","formula":"Sort_rows \/ Uptime","test":"value * 60 >= 1","issue":"Es werden viele Zeilen sortiert.","recommendation":"Auch wenn ein hoher Anteil an Zeilensortierungen nicht falsch ist, sollten Sie darauf achten, dass die Abfragen, die viele Sortierungen verwenden, indizierte Spalten in der ORDER-BY-Klausel verwenden, da dies zu viel schnellerem Sortieren f\u00fchrt.","justification":"Durchschnitt sortierte Zeilen: 4237.39 pro Sekunde","id":"Sort rows"},{"name":"Rate von Joins ohne Indizes","formula":"(Select_range_check + Select_scan + Select_full_join) \/ Uptime","test":"value * 60 * 60 > 1","issue":"Es werden zu viele Joins ohne die Benutzung von Indizes durchgef\u00fchrt.","recommendation":"Dies bedeutet, dass Joins vollst\u00e4ndige Tabellenscans durchf\u00fchren. Indizes f\u00fcr die Spalten zu verwenden, die in den Join-Bedingungen eingesetzt werden, wird die Joins erheblich beschleunigen.","justification":"Durchschnitt Tabellen-Joins: 96.29 pro Sekunde, dieser Wert sollte kleiner als 1 pro Stunde sein","id":"Rate of joins without indexes"},{"name":"Lese-Rate erster Indexeintrag","formula":"Handler_read_first \/ Uptime","test":"value * 60 * 60 > 1","issue":"Die Lese-Rate des ersten Indexeintrag ist hoch.","recommendation":"Dies bedeutet in der Regel h\u00e4ufig vollst\u00e4ndige Indexscans. Vollst\u00e4ndige Indexscans sind schneller als Tablenscans aber sie kosten viele CPU-Zyklen in gro\u00dfen Tabellen, wenn diese Tabellen gro\u00dfe Mengen von Aktualisierungen und L\u00f6schungen haben oder hatten. Ein Ausf\u00fchren von \"OPTIMIZE TABLE\" auf diese Tabellen kann die Menge verringern und\/oder die Geschwindigkeit der vollst\u00e4ndigen Indexscans beschleunigen. Abgesehen davon k\u00f6nnen vollst\u00e4ndige Indexscans nur durch Umschreiben der Abfragen reduziert werden.","justification":"Durchschnitt Indexscans: 63.85 pro Sekunde, dieser Wert sollte kleiner als 1 pro Stunde sein","id":"Rate of reading first index entry"},{"name":"Lese-Rate fester Positionen","formula":"Handler_read_rnd \/ Uptime","test":"value * 60 * 60 > 1","issue":"Die Lese-Rate fester Positionen ist hoch.","recommendation":"Dies deutet darauf hin, dass viele Abfragen Sortieren und\/oder vollst\u00e4ndige Tabellen-Scan ben\u00f6tigen, einschlie\u00dflich Join-Abfragen die keine Indizes verwenden. F\u00fcgen Sie Indizes hinzu wo zutreffend.","justification":"Durchschnittliche Lese-Rate fester Positionen: 4076.09 pro Sekunde, dieser Wert sollte kleiner als 1 pro Stunde sein","id":"Rate of reading fixed position"},{"name":"Lese-Rate n\u00e4chste Tabellenzeile","formula":"Handler_read_rnd_next \/ Uptime","test":"value * 60 * 60 > 1","issue":"Lese-Rate n\u00e4chste Tabellenzeile ist hoch.","recommendation":"Dies deutet darauf hin, dass viele Abfragen Full Table Scans durchf\u00fchren. F\u00fcgen Sie Indizes hinzu wo zutreffend.","justification":"Lese-Rate n\u00e4chste Tabellenzeile: 57233.52 pro Sekunde, dieser Wert sollte kleiner als 1 pro Stunde sein","id":"Rate of reading next table row"},{"name":"Temp Disk Rate","precondition":"!fired('Percentage of temp tables on disk')","formula":"Created_tmp_disk_tables \/ Uptime","test":"value * 60 * 60 > 1","issue":"Viele tempor\u00e4re Tabellen werden auf die Festplatte geschrieben, anstelle im Speicher gehalten zu werden.","recommendation":"Erh\u00f6hen von <a href=\"server_variables.php?filter=max_heap_table_size&lang=de\">max_heap_table_size<\/a> und <a href=\"server_variables.php?filter=tmp_table_size&lang=de\">tmp_table_size<\/a> k\u00f6nnen helfen. Jedoch werden einige tempor\u00e4ren Tabellen immer unabh\u00e4ngig vom Wert dieser Variablen auf den Datentr\u00e4ger geschrieben. Um diese zu verhindern m\u00fcssen Sie Ihre Abfragen so umschreiben das es nicht zu diesen Bedingungen kommt (Innerhalb einer tempor\u00e4ren Tabelle: Vorhandensein eines BLOB- oder TEXT-Spalte oder eine Spalte gr\u00f6\u00dfer als 512 Bytes) wie in der <a href=\".\/url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Finternal-temporary-tables.html\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL-Dokumentation<\/a> erw\u00e4hnt wird","justification":"Rate auf Festplatte geschriebener tempor\u00e4rer Tabellen: 19.64 pro Sekunde, dieser Wert sollte kleiner als 1 pro Stunde sein","id":"Temp disk rate"},{"name":"Max % des MyISAM Schl\u00fcssel-Cache jemals benutzt","precondition":"key_buffer_size > 0","formula":"Key_blocks_used * key_cache_block_size \/ key_buffer_size * 100","test":"value < 95","issue":"MyISAM Schl\u00fcssel-Cache (Indize Cache) % benutz ist niedrig.","recommendation":"Sie m\u00fcssen m\u00f6glicherweise Ihren <a href=\"server_variables.php?filter=key_buffer_size&lang=de\">key_buffer_size<\/a> verkleinern, \u00fcberpr\u00fcfen Sie Ihre Tabellen um zu sehen ob Indizes entfernt wurden oder \u00dcberpr\u00fcfen Sie Abfragen und Erwartungen um zu sehen welche Indizes verwendet werden.","justification":"maximal wurden % des MyISAM Sortierungspuffers benutzt: 4%, dieser Wert sollte \u00fcber 95% liegen","id":"Max % MyISAM key buffer ever used"},{"name":"H\u00e4ufigkeit von Tabellen\u00f6ffnungen","formula":"Opened_tables \/ Uptime","test":"value*60*60 > 10","issue":"Hohe Anzahl an Tabellen-\u00d6ffnungen.","recommendation":"\u00d6ffnen von Tabellen erfordert Festplatten I\/O, welches langsam ist. Erh\u00f6hung von <a href=\"server_variables.php?filter=Table_open_cache&lang=de\">Table_open_cache<\/a> k\u00f6nnte dies vermeiden.","justification":"H\u00e4ufigkeit von Tabellen\u00f6ffnungen: 40.33 pro Sekunde, dieser Wert sollte weniger als 10 pro Stunde sein","id":"Rate of table open"},{"name":"Rate der abgebrochenen Verbindungen","formula":"Aborted_connects \/ Uptime","test":"value * 60 * 60 > 1","issue":"Zu viele Verbindungen werden abgebrochen.","recommendation":"Verbindungen sind in der Regel abgebrochen, wenn sie nicht autorisiert werden k\u00f6nnen. <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fblog%2F2008%2F08%2F23%2Fhow-to-track-down-the-source-of-aborted_connects%2F\" target=\"_blank\" rel=\"noopener noreferrer\">Dieser Artikel<\/a> k\u00f6nnte Ihnen helfen der Quelle auf die Spur zu kommen.","justification":"Die Rate der abgebrochenen Verbindungen ist 2.48 pro Minute, dieser Wert sollte weniger als 1 pro Stunde sein","id":"Rate of aborted connections"},{"name":"Rate der abgebrochenen Clienten","formula":"Aborted_clients \/ Uptime","test":"value * 60 * 60 > 1","issue":"Zu viele Clienten werden abgebrochen.","recommendation":"Clienten werden in der Regel abgebrochen, wenn sie ihre Verbindung zu MySQL nicht richtig schlie\u00dfen. Dies kann aufgrund von Netzwerkproblemen oder Quellcode der Datenbank-Handler nicht ordnungsgem\u00e4\u00df schlie\u00dfen passieren. \u00dcberpr\u00fcfen Sie Ihre Netzwerk und Quellcode.","justification":"Die Rate der abgebrochene Clienten ist 1.13 pro Minute, dieser Wert sollte kleiner als 1 pro Stunde sein","id":"Rate of aborted clients"},{"name":"Max InnoDB Protokollgr\u00f6\u00dfe","precondition":"innodb_buffer_pool_size > 0 && innodb_log_file_size \/ innodb_buffer_pool_size * 100 < 30","formula":"innodb_log_file_size \/ (1024 * 1024)","test":"value > 256","issue":"Die InnoDB Protokollgr\u00f6\u00dfe ist nicht ausreichend gro\u00df.","recommendation":"Es \u00fcblicherweise ausreichend <a href=\"server_variables.php?filter=innodb_log_file_size&lang=de\">innodb_log_file_size<\/a> auf 25% der Gr\u00f6\u00dfe von <a href=\"server_variables.php?filter=Innodb_buffer_pool_size&lang=de\">Innodb_buffer_pool_size<\/a> einzustellen. Eine sehr gro\u00dfe <a href=\"server_variables.php?filter=innodb_log_file_size&lang=de\">innodb_log_file_size<\/a> verlangsamt die Wiederherstellungszeit nach einem Datenbank Absturz erheblich. Siehe auch <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fblog%2F2006%2F07%2F03%2Fchoosing-proper-innodb_log_file_size%2F%22%3Ediesen+Artikels%3C%2Fa%3E.+Sie+m%C3%BCssen+den+Server+herunterfahren%2C+die+InnoDB-Logdateien+l%C3%B6schen%2C+den+neuen+Wert+in+my.cnf+eintragen%2C+den+Server+neu+starten+und+dann+das+Fehlerprotokoll+%C3%BCberpr%C3%BCfen+ob+alles+gut+ging.+Siehe+auch+%3Ca+href%3D%22https%3A%2F%2Fmysqldatabaseadministration.blogspot.com%2F2007%2F01%2Fincrease-innodblogfilesize-proper-way.html\" target=\"_blank\" rel=\"noopener noreferrer\">diesen Blog-Eintrag<\/a>","justification":"Ihre absolute InnoDB Protokollgr\u00f6\u00dfe ist 512 MiB","id":"Max InnoDB log size"},{"name":"Abfragen-Zwischenspeicher deaktiviert","formula":"query_cache_size","test":"value == 0 || query_cache_type == 'OFF' || query_cache_type == '0'","issue":"Der Abfragen-Zwischenspeicher ist nicht aktiviert.","recommendation":"Der Abfrage-Zwischenspeicher verbessert die Leistung, wenn er korrekt konfiguriert wurde. Aktivieren Sie ihn indem Sie <a href=\"server_variables.php?filter=query_cache_size&lang=de\">query_cache_size<\/a> auf ein zweistelligen MiB-Wert und <a href=\"server_variables.php?filter=query_cache_type&lang=de\">query_cache_type<\/a> auf 'ON' setzen. <b>Beachten Sie:<\/b> Ignorieren Sie diese Empfehlung, wenn Sie memcached benutzen.","justification":"query_cache_size ist auf 0 oder query_cache_type ist auf 'OFF' gesetzt","id":"Query cache disabled"}],"notfired":[{"name":"Betriebszeit unter einem Tag","formula":"Uptime","test":"value < 86400","issue":"Die Betriebszeit betr\u00e4gt weniger als ein Tag, Leistung-Optimierungen k\u00f6nnten ungenau sein.","recommendation":"Um genauere Durchschnittswerte zu haben, wird empfohlen, den Server mehr als einen Tag laufen zu lassen, bevor dieser Analysierer ausgef\u00fchrt wird","justification":"Die Betriebszeit betr\u00e4gt nur 65 Tage, 23 Stunden, 27 Minuten und 28 Sekunden","id":"Uptime below one day"},{"name":"Weniger als 1.000 Anfragen","formula":"Questions","test":"value < 1000","issue":"Weniger als 1.000 Anfragen wurden an den Datenbank-Server gerichtet. Empfehlungen k\u00f6nnten ungenau sein.","recommendation":"Den Server l\u00e4nger laufen lassen, bis er mehr Abfragen ausgef\u00fchrt hat.","justification":"Bisherige Anzahl von Anfragen: 5223381165","id":"Questions below 1,000"},{"name":"Prozentsatz langsamer Anfragen","precondition":"Questions > 0","formula":"Slow_queries \/ Questions * 100","test":"value >= 5","issue":"Es gibt viele langsame Abfragen verglichen mit der Gesamtzahl der Abfragen.","recommendation":"Eventuell m\u00f6chten Sie <a href=\"server_variables.php?filter=long_query_time&lang=de\">long_query_time<\/a> erh\u00f6hen oder die Abfragen optimieren, die im Slow Query Log aufgef\u00fchrt werden","justification":"Der Anteil langsamer Anfragen sollte kleiner als 5% sein, Ihr Wert ist 0%.","id":"Percentage of slow queries"},{"name":"Langsame Anfragen Anteil","precondition":"Questions > 0","formula":"(Slow_queries \/ Questions * 100) \/ Uptime","test":"value * 60 * 60 > 1","issue":"Es gibt einen hohen Prozentsatz langsamer Abfragen verglichen mit der Onlinezeit des Servers.","recommendation":"Eventuell m\u00f6chten Sie <a href=\"server_variables.php?filter=long_query_time&lang=de\">long_query_time<\/a> erh\u00f6hen oder die Abfragen optimieren, die im Slow Query Log aufgef\u00fchrt werden","justification":"Sie haben <0.01 pro Tag langsame Abfragen pro Stunde, Sie sollten weniger als 1% pro Stunde haben.","id":"Slow query rate"},{"name":"Langsame Anfragen Zeit","formula":"long_query_time","test":"value >= 10","issue":"{long_query_time} ist auf 10 Sekunden oder mehr gesetzt, somit werden nur langsame Abfragen geloggt, die l\u00e4nger als 10 Sekunden laufen.","recommendation":"Es wird empfohlen, <a href=\"server_variables.php?filter=long_query_time&lang=de\">long_query_time<\/a> auf einen niedrigeren Wert zu setzen, abh\u00e4ngig von Ihrer Umgebung. Gew\u00f6hnlich wird ein Wert von 1 bis 5 Sekunden vorgeschlagen.","justification":"long_query_time ist auf 5 Sekunde(n) eingestellt.","id":"Long query time"},{"name":"Langsame Anfragen \u00dcberwachung","precondition":"PMA_MYSQL_INT_VERSION >= 50600","formula":"slow_query_log","test":"value == 'OFF'","issue":"Die \u00dcberwachung langsamer Anfragen ist deaktiviert.","recommendation":"Loggen von langsamen Abfragen einschalten, indem <a href=\"server_variables.php?filter=slow_query_log&lang=de\">slow_query_log<\/a> auf 'ON' gesetzt wird. Das hilft beim Erkennen von grauenhaft langsamen Abfragen.","justification":"slow_query_log ist deaktiviert","id":"Slow query logging"},{"name":"Release Reihe","formula":"version","test":"substr(value,0,2) <= '5.' && substr(value,2,1) < 1","issue":"Die MySQL-Server-Version ist kleiner als 5.1.","recommendation":"Sie sollten aktualisieren, denn MySQL 5.1 hat verbesserte Leistung, und MySQL 5.5 sogar noch mehr.","justification":"Aktuelle Version: 5.7.42-log","id":"Release Series"},{"name":"Unterversion","precondition":"! fired('Release Series')","formula":"version","test":"substr(value,0,2) <= '5.' && substr(value,2,1) <= 1 && substr(value,4,2) < 30","issue":"Version kleiner als 5.1.30 (die erste allgemein verf\u00fcgbare Freigabe von 5.1).","recommendation":"Sie sollten aktualisieren, denn aktuelle Versionen von MySQL 5.1 haben verbesserte Leistung und MySQL 5.5 sogar noch mehr.","justification":"Aktuelle Version: 5.7.42-log","id":"Minor Version"},{"name":"Unterversion","precondition":"! fired('Release Series')","formula":"version","test":"substr(value,0,1) == 5 && substr(value,2,1) == 5 && substr(value,4,2) < 8","issue":"Version kleiner als 5.5.8 (die erste allgemein verf\u00fcgbare Freigabe von 5.5).","recommendation":"Sie sollten aktualisieren, n\u00e4mlich auf eine stabile Version von MySQL 5.5.","justification":"Aktuelle Version: 5.7.42-log","id":"Minor Version"},{"name":"Distribution","formula":"version_comment","test":"preg_match('\/source\/i',value)","issue":"Version ist aus Quellen \u00fcbersetzt, keine offizielle MySQL-Bin\u00e4rversion.","recommendation":"Wenn Sie den Quellcode nicht kompiliert haben, kann es sein, dass Sie ein Paket verwenden, welches durch eine Distribution ver\u00e4ndert wurde. Die MySQL-Dokumentation ist nur f\u00fcr offizielle MySQL Binaries g\u00fcltig, nicht f\u00fcr Paket-Distributionen (z.B. RedHat, Debian\/Ubuntu, etc).","justification":"'source' in version_comment gefunden","id":"Distribution"},{"name":"Distribution","formula":"version_comment","test":"preg_match('\/percona\/i',value)","issue":"Die MySQL-Anleitung ist nur f\u00fcr offizielle MySQL-Bin\u00e4rversionen akkurat.","recommendation":"Die Dokumentation zu Percona ist unter <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fsoftware%2Fdocumentation%2F\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.percona.com\/software\/documentation\/<\/a> verf\u00fcgbar","justification":"'percona' in version_comment gefunden","id":"Distribution"},{"name":"MySQL Architektur","formula":"system_memory","test":"value > 3072*1024 && !preg_match('\/64\/',version_compile_machine) && !preg_match('\/64\/',version_compile_os)","issue":"MySQL wurde nicht als 64-bit Programm \u00fcbersetzt.","recommendation":"Ihre Speicherkapazit\u00e4t betr\u00e4gt mehr als 3 GiB (vorausgesetzt der Server l\u00e4uft auf localhost), deshalb kann MySQL vermutlich nicht den ganzen Speicher benutzen. Es wird empfohlen, dass Sie die 64-bit Version von MySQL installieren.","justification":"Verf\u00fcgbarer Specher auf diesem Rechner: 0 B","id":"MySQL Architecture"},{"name":"Erlaubt das Erstellen tempor\u00e4rer Tabellen","precondition":"Sort_scan + Sort_range > 0","formula":"Sort_merge_passes \/ (Sort_scan + Sort_range) * 100","test":"value > 10","issue":"Zu viele Sortierungen verursachen tempor\u00e4re Tabellen.","recommendation":"Ziehen Sie in Betracht, <a href=\"server_variables.php?filter=sort_buffer_size&lang=de\">sort_buffer_size<\/a> und\/oder <a href=\"server_variables.php?filter=record_rnd_buffer&lang=de\">record_rnd_buffer<\/a> zu erh\u00f6hen, je nach verf\u00fcgbarem Speicher Ihres Systems.","justification":"0% aller Sortierungen verursachen tempor\u00e4re Tabellen, dieser Wert sollte kleiner als 10% sein.","id":"Percentage of sorts that cause temporary tables"},{"name":"Unterschiedliche Werte in tmp_table_size und max_heap_table_size","formula":"tmp_table_size - max_heap_table_size","test":"value !=0","issue":"{tmp_table_size} und {max_heap_table_size} sind nicht identisch belegt.","recommendation":"Sie haben absichtlich einen Wert ge\u00e4ndert: Der Server verwendet den niedrigeren Wert von beiden um die maximale Gr\u00f6\u00dfe der Tabellen im Arbeitsspeicher zu bestimmen. Wenn Sie die Tabelle im Arbeitsspeicher erh\u00f6hen m\u00f6chten m\u00fcssen Sie den anderen Wert auch erh\u00f6hen.","justification":"Aktuelle Belegungen sind: tmp_table_size: 16,00 MiB, max_heap_table_size: 16,00 MiB","id":"Different tmp_table_size and max_heap_table_size"},{"name":"Prozentsatz der tempor\u00e4ren Tabellen auf der Festplatte","precondition":"Created_tmp_tables + Created_tmp_disk_tables > 0","formula":"Created_tmp_disk_tables \/ (Created_tmp_tables + Created_tmp_disk_tables) * 100","test":"value > 25","issue":"Viele tempor\u00e4re Tabellen werden auf die Festplatte geschrieben, anstelle im Speicher gehalten zu werden.","recommendation":"Erh\u00f6hen von <a href=\"server_variables.php?filter=max_heap_table_size&lang=de\">max_heap_table_size<\/a> und <a href=\"server_variables.php?filter=tmp_table_size&lang=de\">tmp_table_size<\/a> k\u00f6nnten helfen. Jedoch werden einige tempor\u00e4ren Tabellen immer unabh\u00e4ngig vom Wert dieser Variablen auf den Datentr\u00e4ger geschrieben. Um diese zu verhindern m\u00fcssen Sie Ihre Abfragen so umschreiben das es nicht zu diesen Bedingungen kommt (Innerhalb einer tempor\u00e4ren Tabelle: Vorhandensein eines BLOB- oder TEXT-Spalte oder eine Spalte gr\u00f6\u00dfer als 512 Bytes) wie am Anfang von <a href=\".\/url.php?url=https%3A%2F%2Fwww.facebook.com%2Fnote.php%3Fnote_id%3D10150111255065841%26comments\" target=\"_blank\" rel=\"noopener noreferrer\">Artikel der Pythian Group<\/a> erw\u00e4hnt wird","justification":"12% aller tempor\u00e4ren Tabellen werden auf die Festplatte geschrieben, dieser Wert sollte unter 25% liegen","id":"Percentage of temp tables on disk"},{"name":"Gr\u00f6\u00dfe des MyISAM Schl\u00fcssel-Cache","formula":"key_buffer_size","test":"value == 0","issue":"Schl\u00fcssel-Cache nicht initialisiert. Es werden keine MyISAM Indizes gecached.","recommendation":"Setze <a href=\"server_variables.php?filter=key_buffer_size&lang=de\">key_buffer_size<\/a> auf einen Wert, abh\u00e4ngig von Deinen MyISAM Indizes. 64M ist ein guter Anfang.","justification":"key_buffer_size ist 0","id":"MyISAM key buffer size"},{"name":"Prozentsatz der aus dem Speicher gelesenen Indize","precondition":"Key_read_requests > 0","formula":"100 - (Key_reads \/ Key_read_requests * 100)","test":"value < 95","issue":"Der % von Indizes, die den MyISAM Schl\u00fcsselpuffer verwenden ist gering.","recommendation":"Sie m\u00fcssen m\u00f6glicherweise <a href=\"server_variables.php?filter=Key_buffer_size&lang=de\">Key_buffer_size<\/a> erh\u00f6hen.","justification":"Prozentsatz der aus dem Speicher gelesenen Indize: 100%, dieser Wert sollte gr\u00f6\u00dfer als 95% sein","id":"Percentage of index reads from memory"},{"name":"Prozentsatz der verwendeten offene Dateien Grenze","formula":"Open_files \/ open_files_limit * 100","test":"value > 85","issue":"Die Anzahl der offene Dateien n\u00e4hert sich die maximale Anzahl von ge\u00f6ffneten Dateien. M\u00f6glicherweise erhalten Sie \"Too many open files\"-Fehler.","recommendation":"Sie sollten <a href=\"server_variables.php?filter=open_files_limit&lang=de\">open_files_limit<\/a> erh\u00f6hen, und \u00fcberpr\u00fcfen Sie das Fehlerprotokoll beim Neustart nach der \u00c4nderung von <a href=\"server_variables.php?filter=open_files_limit&lang=de\">open_files_limit<\/a>.","justification":"Die Anzahl der ge\u00f6ffneten Dateien ist 0% des Maximalwerts. Dieser Wert sollte unter 85% liegen","id":"Percentage of used open files limit"},{"name":"Anzahl der Datei-\u00d6ffnungen","formula":"Open_files \/ Uptime","test":"value * 60 * 60 > 5","issue":"Die Anzahl der Datei-Zugriffe ist hoch.","recommendation":"Sie sollten <a href=\"server_variables.php?filter=open_files_limit&lang=de\">open_files_limit<\/a> erh\u00f6hen, und \u00fcberpr\u00fcfen Sie das Fehlerprotokoll beim Neustart nach der \u00c4nderung von <a href=\"server_variables.php?filter=open_files_limit&lang=de\">open_files_limit<\/a>.","justification":"Ge\u00f6ffnete Dateien Rate: 0.06 pro Tag, dieser Wert sollte kleiner als 5 pro Stunde sein","id":"Rate of open files"},{"name":"Sofortige Tabellensperren %","precondition":"Table_locks_waited + Table_locks_immediate > 0","formula":"Table_locks_immediate \/ (Table_locks_waited + Table_locks_immediate) * 100","test":"value < 95","issue":"Zu viele Tabellensperren wurden nicht sofort gew\u00e4hrt.","recommendation":"Optimieren Sie die Abfragen und\/oder verwenden InnoDB, um Wartezeit aufgrund von Sperren zu reduzieren.","justification":"Sofortige Tabellensperren: 100%, dieser Wert sollte \u00fcber 95% liegen","id":"Immediate table locks %"},{"name":"Tabellen Sperre Warte Rate","formula":"Table_locks_waited \/ Uptime","test":"value * 60 * 60 > 1","issue":"Zu viele Tabellensperren wurden nicht sofort gew\u00e4hrt.","recommendation":"Optimieren Sie die Abfragen und\/oder verwenden InnoDB, um Wartezeit aufgrund von Sperren zu reduzieren.","justification":"Tabellen Sperre Warte Rate: <0.01 pro Tag, dieser Wert sollte weniger als 1 pro Stunde sein","id":"Table lock wait rate"},{"name":"Prozess-Zwischenspeicher","formula":"thread_cache_size","test":"value < 1","issue":"Prozess-Zwischenspeicher ist deaktiviert, dieses f\u00fchrt zu mehr Overhead bei neuen Verbindungen zu MySQL.","recommendation":"Aktivieren Sie den Prozess-Zwischenspeicher, indem Sie <a href=\"server_variables.php?filter=thread_cache_size&lang=de\">thread_cache_size<\/a> > 0 setzen.","justification":"Der Prozess-Zwischenspeicher ist auf 0 gesetzt","id":"Thread cache"},{"name":"Prozess-Zwischenspeicher Trefferrate %","precondition":"thread_cache_size > 0","formula":"100 - Threads_created \/ Connections","test":"value < 80","issue":"Ineffizienter Prozess-Zwischenspeicher.","recommendation":"<a href=\"server_variables.php?filter=thread_cache_size&lang=de\">thread_cache_size<\/a> erh\u00f6hen.","justification":"Prozess-Zwischenspeicher Trefferrate: 100%, dieser Wert sollte \u00fcber 80% liegen","id":"Thread cache hit rate %"},{"name":"Prozesse die langsam zu starten","precondition":"slow_launch_time > 0","formula":"Slow_launch_threads","test":"value > 0","issue":"Es gibt zu viele Prozesse die langsam starten.","recommendation":"Dies geschieht in der Regel bei allgemeine System-\u00dcberladung da diese eine ziemlich einfache Operation ist. Sie sollten Ihre Systemauslastung sorgf\u00e4ltig \u00fcberwachen.","justification":"0 Pozes(se) brauchten l\u00e4nger als 2 Sekunden um zu starten, es sollten 0 sein","id":"Threads that are slow to launch"},{"name":"Langsame Startzeit","formula":"slow_launch_time","test":"value > 2","issue":"slow_launch_time ist h\u00f6her als 2 Sekunden.","recommendation":"Setzen Sie <a href=\"server_variables.php?filter=slow_launch_time&lang=de\">slow_launch_time<\/a> auf 1 oder 2 Sekunden, um korrekt Prozesse zu z\u00e4hlen, die langsam starten.","justification":"slow_launch_time ist auf 2 eingestellt","id":"Slow launch time"},{"name":"Prozentsatz der benutzten Verbindungen","formula":"Max_used_connections \/ max_connections * 100","test":"value > 80","issue":"Die maximale Menge der verwendeten Verbindungen n\u00e4hert sich dem Wert von {max_connections}.","recommendation":"Erh\u00f6hen Sie <a href=\"server_variables.php?filter=max_connections&lang=de\">max_connections<\/a> oder verringern Sie <a href=\"server_variables.php?filter=wait_timeout&lang=de\">wait_timeout<\/a>, sodass Verbindungen, die Datenbank-Handler nicht richtig schlie\u00dfen, fr\u00fcher beendet werden. Stellen Sie sicher, dass der Code Datenbank-Handler ordnungsgem\u00e4\u00df schlie\u00dft.","justification":"Max_used_connections ist 3% von max_connections, es sollte unter 80% liegen","id":"Percentage of used connections"},{"name":"Prozentsatz der abgebrochenen Verbindungen","formula":"Aborted_connects \/ Connections * 100","test":"value > 1","issue":"Zu viele Verbindungen werden abgebrochen.","recommendation":"Verbindungen sind in der Regel abgebrochen, wenn sie nicht autorisiert werden k\u00f6nnen. <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fblog%2F2008%2F08%2F23%2Fhow-to-track-down-the-source-of-aborted_connects%2F\" target=\"_blank\" rel=\"noopener noreferrer\">Dieser Artikel<\/a> k\u00f6nnte Ihnen helfen der Quelle auf die Spur zu kommen.","justification":"0% aller Verbindungen werden abgebrochen. Dieser Wert sollte unter 1% liegen","id":"Percentage of aborted connections"},{"name":"Prozentualen Anteil der abgebrochenen Clienten","formula":"Aborted_clients \/ Connections * 100","test":"value > 2","issue":"Zu viele Clienten werden abgebrochen.","recommendation":"Clienten werden in der Regel abgebrochen, wenn sie ihre Verbindung zu MySQL nicht richtig schlie\u00dfen. Dies kann aufgrund von Netzwerkproblemen oder Quellcode der Datenbank-Handler nicht ordnungsgem\u00e4\u00df schlie\u00dfen passieren. \u00dcberpr\u00fcfen Sie Ihre Netzwerk und Quellcode.","justification":"0% aller Clienten werden abgebrochen. Dieser Wert sollte unter 2% liegen","id":"Percentage of aborted clients"},{"name":"InnoDB Protokollgr\u00f6\u00dfe","precondition":"innodb_buffer_pool_size > 0","formula":"innodb_log_file_size \/ innodb_buffer_pool_size * 100","test":"value < 20 && innodb_log_file_size \/ (1024 * 1024) < 256","issue":"Die InnoDB Protokollgr\u00f6\u00dfe ist nicht angemessen in Bezug zu der InnoDB Pufferpoolgr\u00f6\u00dfe.","recommendation":"Vor allem auf einem System mit einer Menge von Schreibzugriffen auf InnoDB-Tabellen sollten Sie <a href=\"server_variables.php?filter=innodb_log_file_size&lang=de\">innodb_log_file_size<\/a> auf 25% von <a href=\"server_variables.php?filter=innodb_buffer_pool_size&lang=de\">innodb_buffer_pool_size<\/a> setzen. Jedoch, je gr\u00f6\u00dfer dieser Wert, desto l\u00e4nger wird die Wiederherstellungszeit bei Datenbank Abst\u00fcrzen, so dass dieser Wert nicht viel h\u00f6her als 256 MiB gsetzt werden sollte. Bitte beachten Sie jedoch, dass Sie nicht einfach den Wert dieser Variablen \u00e4ndern k\u00f6nnen. Sie m\u00fcssen den Server herunterfahren, die InnoDB-Logdateien l\u00f6schen, den neuen Wert in my.cnf eintragen, den Server neu starten und dann das Fehlerprotokoll \u00fcberpr\u00fcfen ob alles gut ging. Siehe auch <a href=\".\/url.php?url=https%3A%2F%2Fmysqldatabaseadministration.blogspot.com%2F2007%2F01%2Fincrease-innodblogfilesize-proper-way.html\" target=\"_blank\" rel=\"noopener noreferrer\">diesen Blog-Eintrag<\/a>","justification":"Ihre InnoDB-Protokollgr\u00f6\u00dfe ist 4% in Bezug auf die InnoDB Pufferpoolgr\u00f6\u00dfe, es sollte nicht unter 20% liegen","id":"InnoDB log size"},{"name":"MyISAM gleichzeitige Einf\u00fcgeoperationen","formula":"concurrent_insert","test":"value === 0 || value === 'NEVER'","issue":"Aktivieren Sie {concurrent_insert}, indem Sie es auf 1 setzen","recommendation":"<a href=\"server_variables.php?filter=Concurrent_insert&lang=de\">Concurrent_insert<\/a> auf 1 setzen verringert Konflikte zwischen Lese- und Schreibzugriffen auf Tabellen. Siehe auch <a href=\".\/url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fconcurrent-inserts.html\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL Dokumentation<\/a>","justification":"concurrent_insert ist auf 0 gesetzt","id":"MyISAM concurrent inserts"}],"unchecked":[{"name":"Slow query logging","precondition":"PMA_MYSQL_INT_VERSION < 50600","formula":"log_slow_queries","test":"value == 'OFF'","issue":"The slow query log is disabled.","recommendation":"Enable slow query logging by setting {log_slow_queries} to 'ON'. This will help troubleshooting badly performing queries.","justification":"log_slow_queries is set to 'OFF'"},{"name":"Percentage of MyISAM key buffer used","precondition":"key_buffer_size > 0 && !fired('Max % MyISAM key buffer ever used')","formula":"( 1 - Key_blocks_unused * key_cache_block_size \/ key_buffer_size) * 100","test":"value < 95","issue":"MyISAM key buffer (index cache) % used is low.","recommendation":"You may need to decrease the size of {key_buffer_size}, re-examine your tables to see if indexes have been removed, or examine queries and expectations about what indexes are being used.","justification":"% MyISAM key buffer used: %s%, this value should be above 95% | round(value,1)"},{"name":"Is InnoDB disabled?","precondition":"PMA_MYSQL_INT_VERSION < 50600","formula":"have_innodb","test":"value != \"YES\"","issue":"You do not have InnoDB enabled.","recommendation":"InnoDB is usually the better choice for table engines.","justification":"have_innodb is set to 'value'"},{"name":"InnoDB buffer pool size","precondition":"system_memory > 0","formula":"innodb_buffer_pool_size \/ system_memory * 100","test":"value < 60","issue":"Your InnoDB buffer pool is fairly small.","recommendation":"The InnoDB buffer pool has a profound impact on performance for InnoDB tables. Assign all your remaining memory to this buffer. For database servers that use solely InnoDB as storage engine and have no other services (e.g. a web server) running, you may set this as high as 80% of your available memory. If that is not the case, you need to carefully assess the memory consumption of your other services and non-InnoDB-Tables and set this variable accordingly. If it is set too high, your system will start swapping, which decreases performance significantly. See also <a href=\"https:\/\/www.percona.com\/blog\/2007\/11\/03\/choosing-innodb_buffer_pool_size\/\">this article<\/a>","justification":"You are currently using %s% of your memory for the InnoDB buffer pool. This rule fires if you are assigning less than 60%, however this might be perfectly adequate for your system if you don't have much InnoDB tables or other services running on the same machine. | value"},{"name":"Query cache efficiency (%)","precondition":"Com_select + Qcache_hits > 0 && !fired('Query cache disabled')","formula":"Qcache_hits \/ (Com_select + Qcache_hits) * 100","test":"value < 20","issue":"Query cache not running efficiently, it has a low hit rate.","recommendation":"Consider increasing {query_cache_limit}.","justification":"The current query cache hit rate of %s% is below 20% | round(value,1)"},{"name":"Query Cache usage","precondition":"!fired('Query cache disabled')","formula":"100 - Qcache_free_memory \/ query_cache_size * 100","test":"value < 80","issue":"Less than 80% of the query cache is being utilized.","recommendation":"This might be caused by {query_cache_limit} being too low. Flushing the query cache might help as well.","justification":"The current ratio of free query cache memory to total query cache size is %s%. It should be above 80% | round(value,1)"},{"name":"Query cache fragmentation","precondition":"!fired('Query cache disabled')","formula":"Qcache_free_blocks \/ (Qcache_total_blocks \/ 2) * 100","test":"value > 20","issue":"The query cache is considerably fragmented.","recommendation":"Severe fragmentation is likely to (further) increase Qcache_lowmem_prunes. This might be caused by many Query cache low memory prunes due to {query_cache_size} being too small. For a immediate but short lived fix you can flush the query cache (might lock the query cache for a long time). Carefully adjusting {query_cache_min_res_unit} to a lower value might help too, e.g. you can set it to the average size of your queries in the cache using this formula: (query_cache_size - qcache_free_memory) \/ qcache_queries_in_cache","justification":"The cache is currently fragmented by %s% , with 100% fragmentation meaning that the query cache is an alternating pattern of free and used blocks. This value should be below 20%. | round(value,1)"},{"name":"Query cache low memory prunes","precondition":"Qcache_inserts > 0 && !fired('Query cache disabled')","formula":"Qcache_lowmem_prunes \/ Qcache_inserts * 100","test":"value > 0.1","issue":"Cached queries are removed due to low query cache memory from the query cache.","recommendation":"You might want to increase {query_cache_size}, however keep in mind that the overhead of maintaining the cache is likely to increase with its size, so do this in small increments and monitor the results.","justification":"The ratio of removed queries to inserted queries is %s%. The lower this value is, the better (This rules firing limit: 0.1%) | round(value,1)"},{"name":"Query cache max size","precondition":"!fired('Query cache disabled')","formula":"query_cache_size","test":"value > 1024 * 1024 * 128","issue":"The query cache size is above 128 MiB. Big query caches may cause significant overhead that is required to maintain the cache.","recommendation":"Depending on your environment, it might be performance increasing to reduce this value.","justification":"Current query cache size: %s | ADVISOR_formatByteDown(value, 2, 2)"},{"name":"Query cache min result size","precondition":"!fired('Query cache disabled')","formula":"query_cache_limit","test":"value == 1024*1024","issue":"The max size of the result set in the query cache is the default of 1 MiB.","recommendation":"Changing {query_cache_limit} (usually by increasing) may increase efficiency. This variable determines the maximum size a query result may have to be inserted into the query cache. If there are many query results above 1 MiB that are well cacheable (many reads, little writes) then increasing {query_cache_limit} will increase efficiency. Whereas in the case of many query results being above 1 MiB that are not very well cacheable (often invalidated due to table updates) increasing {query_cache_limit} might reduce efficiency.","justification":"query_cache_limit is set to 1 MiB"}],"errors":[]}}