WordPress-Datenbankleistung: Percona-Server vs. MySQL ohne InnoDB

Lesezeit: 5 Minuten

Ich möchte nicht subjektiv fragen: “Welches DBMS ist am besten?” oder “Welches DBMS dieser beiden ist besser?”. Das muss keine Fanboy-Debatte sein.

Vielmehr begrüße ich Benchmark-Testergebnisse oder konkrete Erfahrungen, wenn es um ein bestimmtes Kriterium geht – Performance – insbesondere in Bezug auf eine bestimmte Anwendung: WordPress.

Ich verstehe, dass WordPress InnoDB nicht verwendet, und daher kann das Deaktivieren von InnoDB in MySQL die Dinge beschleunigen. Auf der anderen Seite ist Percona ein MySQL-Fork, der InnoDB durch XtraDB ersetzt und auch behauptet, hocheffizient und leistungsstark zu sein.

Wie steht es um die Leistung, wenn es um die Ausführung von WordPress geht? (keine Notwendigkeit für Konkurrenz … beide könnten sehr gut aussehen, soweit ich weiß)

Ich habe versucht, allgemein auf Google zu suchen, bin aber nicht auf eine intelligente Diskussion gestoßen, geschweige denn auf Leistungs-Benchmark-Tests.

Wäre sehr dankbar, wenn einer der Experten hier seine Erfahrungen teilen könnte. Danke vielmals!

Und bitte behalte selbstgefällige, abfällige Kommentare wie „warum versuchst DU es nicht“ für dich. Wenn ich könnte würde ich. Und der Zweck von Stack Overflow ist es, Fachwissen auszutauschen und voneinander zu lernen, nicht alles selbst zu machen.

  • Soweit ich in verschiedenen Postos Percona gelesen habe, gab es einige Leute, die mit Percona anstelle von Standard-Mysql auf einem AMAZON AC2-Server eine bessere Datenbankleistung erzielten. Ich denke, XTradb ist eine optionale Installation, die innodb nach Wahl ersetzt. Der Percona-Server selbst fügt einige Leistungsüberwachungsfunktionen hinzu, sodass Sie den Server selbst optimieren können.

    – Probleme

    5. April 2013 um 13:55 Uhr

  • Hier sagt der Autor, dass er mit Percona eine bessere Leistung hatte, aber er hat nicht gesagt, welche DB-Engine er verwendet hat: mysqlperformanceblog.com/2011/08/04/…

    – Probleme

    5. April 2013 um 14:09 Uhr

Benutzer-Avatar
Gastplakat

Diese Frage lautet weniger „MySQL vs. Percona Server“ als vielmehr „MyISAM vs. InnoDB/XtraDB“. Beide haben ihre eigenen Leistungsmerkmale, und welche Speicher-Engine für Sie die richtige ist, hängt weitgehend von Ihrer Arbeitslast ab. Die meisten WordPress-Sites sind wenig frequentiert und werden hauptsächlich gelesen. Solange Ihre Daten also in Ihren Pufferpool (für InnoDB/XtraDB) oder Ihren Schlüsselcache (für MyISAM) passen, würde ich eine nicht allzu unterschiedliche Leistung erwarten.

Nachdem ich viel Arbeit an der Optimierung der WordPress-Datenbank geleistet habe, kann ich Ihnen sagen, dass die Leistung Ihrer WordPress-Site mehr von der Klasse Ihrer Hardware und den von Ihnen gewählten Plugins abhängt.

  • Sie sollten ein Caching-Plugin verwenden, damit Sie eine Menge Datenbank-Leseanforderungen einfach vermeiden können
  • Sie sollten Plugins vermeiden, die teure Abfragen ausgeben (leider deckt dies die meisten Plugins ab).
  • Sie sollten Ihre Kommentare beschneiden (normalerweise bestehen Kommentare zu über 99 % aus SPAM, sodass die als Spam markierten nur in Ihrer Datenbank sitzen und Platz beanspruchen).
  • Ihr Host sollte über genügend RAM verfügen, damit das heiße Dataset in den Arbeitsspeicher passt

Wenn Sie wirklich ins Detail über MyISAM vs. InnoDB/XtraDB gehen möchten, können Sie sich die folgenden Links ansehen:

http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/
http://www.rackspace.com/knowledge_center/article/mysql-engines-myisam-vs-innodb

Um eine lange Antwort noch länger zu machen, müssen Sie Ihre MySQL-Instanz profilieren, nachdem Sie Produktionsdatenverkehr generieren können. Ich weiß, Sie sagten, Sie könnten das nicht, aber … diese Frage ist so, als würde ich fragen: “Welcher Haarschnitt würde mir am besten stehen”, ohne ein Bild einzufügen.

Benutzer-Avatar
Bill Karwin

WordPress kann InnoDB (oder XtraDB) problemlos verwenden. Ich habe Beratung und Schulungen für Websites durchgeführt, die WordPress in großem Umfang hosten, wobei ich MyISAM, InnoDB und XtraDB verwendet habe.

WordPress 3.5.1 erstellt Tabellen, ohne die Speicher-Engine anzugeben. Es berücksichtigt also die Standardspeicher-Engine auf jeder Instanz von MySQL, die Sie verwenden. Ab MySQL 5.5 (ca. Dezember 2010) ist die Standardspeicher-Engine InnoDB. Ich habe die Installation von WordPress auf einem virtuellen Host mit MySQL 5.6.10 getestet und Tabellen mit der InnoDB-Speicher-Engine erstellt.

Ich habe keine Benchmarks, die ich teilen könnte, aber diese wären sowieso von begrenztem Nutzen, da die Leistung so stark von der jeweiligen Hardware, der Verkehrslast und anderen Faktoren abhängt.

Ein CMS wie WordPress neigt dazu, stark auf schreibgeschützte Abfragen ausgerichtet zu sein. Hier sollte InnoDB gute Dienste leisten, da es sowohl Datenseiten als auch Indizes zwischenspeichert. MyISAM speichert nur Indizes und verlässt sich auf den Dateisystem-Cache, um Daten zu speichern.

Der Schlüssel zu einer guten Leistung von WordPress liegt also darin, genug zuzuweisen innodb_buffer_pool_size um die Daten und Indizes für alle Ihre Tabellen zu speichern. Die Datengröße einer WordPress-Site (selbst einer mit Hunderten von Artikeln) ist normalerweise nicht sehr groß, sodass Sie wahrscheinlich nur wenige GB Pufferpool benötigen, um alle häufig angeforderten Daten im Puffer zu halten. Sobald die Daten- und Indexseiten den InnoDB-Pufferpool gefüllt haben, werden 99,9 % Ihrer Abfragen aus dem RAM heraus bedient, und die Website wird eine hervorragende Leistung erbringen.

Wie bei jedem Caching-System ist der wirkliche Leistungskiller, wenn Ihre “heißen” Daten größer als der Cache sind, wodurch Abfragen gezwungen werden, Festplatten-I/O zu verursachen. Ein einzelner Festplatten-I/O ist einige tausend RAM-Zugriffe wert, daher sollten Sie Inhalte so weit wie möglich komplett aus dem RAM bereitstellen.

Die Verbesserungen in XtraDB sollen helfen, wenn die Anzahl der Threads_running höher wird oder der Pufferpool größer wird (z. B. Dutzende von GB). Es ist unwahrscheinlich, dass eine einzelne WP-Site entweder MySQL oder Percona Server so stark beansprucht, dass diese Verbesserungen mehr als nur einen kleinen Vorteil bieten. Es sei denn, Sie hosten Hunderte von WP-Sites auf einem bestimmten Server wie ein Hosting-Unternehmen.

Möglicherweise stellen Sie sogar fest, dass der Engpass nicht mehr die Datenbank ist, und Sie müssen sich dann auf Front-End-Optimierungen konzentrieren.

1363130cookie-checkWordPress-Datenbankleistung: Percona-Server vs. MySQL ohne InnoDB

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy