Wie funktioniert MySQL InnoDB (insert) Leistungsoptimierung?

7

Ich habe immer noch Probleme mit der Leistung meiner MySQL-Datenbank mit der InnoDB-Engine. Vor allem die Leistung der Dateneinfügung, geringer die Leistung der laufenden Abfragen.

Ich habe nach Informationen, Anleitungen und so weiter geforscht, aber ich fand die meisten Informationen ziemlich tiefgründig. Kann ich irgendwo im Netz Grundinformationen für "Neulinge" finden, einen Ausgangspunkt für die Leistungsoptimierung? Die ersten, wichtigsten Schritte für die InnoDB-Optimierung werden auf weniger komplizierte Weise erklärt.

Ich verwende die Windows-Plattform

    
waanders 28.09.2011, 15:04
quelle

4 Antworten

15

Ich habe ein paar sehr große MySQL-Datenbanken (wie 1TB +) verwaltet. Sie waren riesige, unversöhnliche Bestien mit einem endlosen Appetit, mir Magenprobleme zu bereiten.

Ich habe alles gelesen, was ich über MySQL Performance Tuning und innodb finden konnte. Hier ist eine Zusammenfassung dessen, was mir geholfen hat:

  1. Das Buch High Performance MySQL ist gut, aber bringt Sie nur so weit.
  2. Der Blog MySQL Performance Blog (dieser Link ist zu ihren Beiträgen mit 'innodb' getaggt) war insgesamt der nützlichste Ressource, die ich im Netz gefunden habe. Sie gehen detailliert auf viele Innodb Tuning-Probleme. Es wird manchmal 'ranty', aber insgesamt ist es großartig. Hier ist ein weiterer Link auf InnoDB Performance Optimization Basics , das ist gut.
  3. Die letzte Hauptsache, die ich gemacht habe, war, einfach die MySQL Docs selbst zu lesen. Ich lese, wie jeder letzte Parameter funktioniert, änderte sie auf meinem Server und machte dann einige grundlegende Profilerstellung. Nach einer Weile finden Sie heraus, was funktioniert, indem Sie große Abfragen ausführen und sehen, was passiert. Hier ist ein guter Anfang: InnoDB Leistungsoptimierung und Fehlerbehebung

Am Ende experimentieren Sie nur und arbeiten durch die Dinge, bis Sie genug Wissen haben, um zu wissen, was funktioniert.

    
Kevin Bedell 30.09.2011, 12:39
quelle
4

Für Neulinge: innodb_flush_log_at_trx_commit = 0, wenn Sie es sich leisten können, bis zu 1 Sekunde Ihrer Arbeit zu verlieren, wenn der Server abstürzt. Dies ist der Kompromiss zwischen Performance und Zuverlässigkeit, aber es wird Ihre Schreibleistung enorm verbessern. Wenn Sie sich einen batteriegepufferten Schreibcache leisten können, verwenden Sie ihn.

Insbesondere unter Windows und für die Schreibleistung könnte MariaDB 5.3 eine bessere Idee sein als das Original-MySQL von Oracle, da MariaDB in der Lage ist, asynchrones IO unter Windows besser zu nutzen. Ich habe vor einiger Zeit eine Notiz darüber geschrieben hier , beim Standard-synthetischen Benchmark ist es bis zu 500% besser als der Standard MySQL 5.5 (siehe Bilder am Ende des Hinweises).

Aber die allererste Leistung, die die Leistung killt, ist die Festplattenspülung. Dies ist lösbar, wenn Sie die Haltbarkeit mit * innodb_flush_log_at_trx_commit * -Parameter, mit batteriegestütztem Schreibcache, entspannen. Sie könnten auch größere Transaktionen in Betracht ziehen, sie reduzieren die Anzahl der Festplattenspülungen.

    
Vladislav Vaintroub 09.10.2011 11:09
quelle
1

Versuchen Sie das MySQL-Primer-Skript: Ссылка

    
Andreas 30.09.2011 12:19
quelle
-1

Ich habe das Netz nicht benutzt, ich habe Bücher benutzt. :)

Das Buch, das ich MySQL gelernt habe, ist "Beginning MySQL" von Wrox Press, von Robert Sheldon und Geoff Moes. Kapitel 15 geht ein paar Grundlagen der Optimierung ein. Ich mochte dieses Buch sehr und denke, es wäre gut zu lesen und war meine Referenz # 1. Aber es ist nicht sehr Speicher-Engine-spezifisch.

Ich habe ein anderes Buch, Pro MySQL von apress, das viel detaillierter über bestimmte Speicher-Engines spricht, aber es ist auch viel schwerer zu lesen. Immer noch eine gute Referenz.

    
Poodlehat 28.09.2011 15:50
quelle

Tags und Links