
Meine Anfrage
./mysqlslap --user=root --concurrency=50 --iterations=1 --pass=toor -vv --create-schema=db --query="SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE 1=1 AND wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN ('1') AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 35, 6"
Einige Ergebnisse
Average number of seconds to run all queries: 68.904 seconds
Minimum number of seconds to run all queries: 68.904 seconds
Maximum number of seconds to run all queries: 68.904 seconds
Number of clients running queries: 50
Average number of queries per client: 1
Die durchschnittliche Auslastung erreicht Spitzenwerte über 32.
Die Spezifikationen der Testmaschine sind:
- 4 GB RAM
- E6550 @ 2,33 GHz (2 Kerne)
- Einzelne SATA-Festplatte
- Debian Lenny + Apache + PHP + MySQL
Die MySQL-Konfiguration kann gelesen werdenhier drüben. Hat jemand einen Rat, wie ich sie anpassen kann, um die Leistung zu verbessern? Danke.
Antwort1
- Installieren Sie w3tc oder wp-super-cache
- Reduzieren Sie die Anzahl der Beiträge/Tags (denken Sie daran, dass WordPress Revisionen von Beiträgen in der Tabelle „wp_posts“ speichert. Wenn also jemand gerne angemeldet bleibt und die automatische Speicherung alle 5 Minuten ausgeführt wird, können dort ziemlich viele überzählige Revisionen enthalten sein).
- WordPress ersetzen
- Holen Sie sich eine schnellere Festplatte
Obwohl ich mit einigen der einstellbaren Parameter in der Konfiguration aus Bauchgefühl nicht einverstanden bin,http://blog.mysqltuner.com/enthält ein Skript, das Sie ausführen können und das Ihnen Eingaben zu Ihren Konfigurationseinstellungen gibt. Sie sollten MySQL 48 Stunden oder länger laufen lassen, damit es die besten Empfehlungen gibt.
- Tabellendefinitionscache
- thread_concurrency (Auf einem Quadcore führe ich dies normalerweise mit 6 aus)
- join_buffer_size (Sie haben es als join_buffer aufgelistet, was falsch sein kann. Sehen Sie sich „Status anzeigen/Variablen anzeigen“ an, um sicherzustellen, dass Ihre Konfigurationseinstellungen wie erwartet wirksam werden.)
Wenn Sie E-Mail nicht auf derselben Partition wie Ihre Datenbank ausführen, sollten Sie das Dateisystem mit noatime,nodiratime mounten. Überprüfen Sie andere anpassbare Einstellungen Ihres Dateisystems.