Login
Newsletter
Werbung

Sa, 30. Mai 2009, 00:00

High Performance MySQL

Wer einen großen Datenbankserver betreibt, wird früher oder später auch mit Leistungs- und Skalierungsproblemen zu tun haben.

Cover von High Performance MySQL

Hans-Joachim Baader (hjb)

Cover von High Performance MySQL

Vorwort

Wer einen großen Datenbankserver betreibt, wird früher oder später auch mit Leistungs- und Skalierungsproblemen zu tun haben. Mit MySQL ist das auch nicht anders. Nur wo andere Datenbanksysteme umfassende Analyse- und Logfunktionen bereitstellen, bietet MySQL ziemlich wenig, und der Administrator, der versucht, aus den spärlichen Daten heraus zu interpretieren, wo der Engpass liegt, könnte sich genausogut auf die Suche nach Atlantis machen. Dokumentation über die Leistungsaspekte ist spärlich. Es gibt zwar ein paar Anlaufstellen im Internet, aber wenig weitere Literatur, denn andere MySQL-Bücher widmen dem Thema allenfalls einmal ein Kapitel. Das Buch »High Performance MySQL«, nach Angaben des Verlags bereits jetzt ein Klassiker, sollte diese Lücke schließen. Inzwischen ist die erste Auflage allerdings veraltet.

Die zweite Auflage von »High Performance MySQL« kommt vier Jahre nach der ersten Auflage und wurde erweitert und überarbeitet. Auf 768 Seiten breiten sich die Autoren über alle nur denkbaren Aspekte der Leistungssteigerung von MySQL-Datenbankservern aus. Die Autoren Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny, Arjen Lentz und Derek J. Balling sind allesamt im Bereich der großen Anwendungen von MySQL zuhause, wo es ein einzelner Server meist nicht mehr tut, sondern meist ein Cluster aus zwei oder mehr MySQL-Servern zum Einsatz kommt. Zum Teil haben sie auch Tools und Erweiterungen zu MySQL beigetragen. Damit dürfte ihre Kompetenz außer Frage stehen.

Dementsprechend ist das Buch, wie auch der Einbandtext angibt, »von Profis für Profis« und nicht für kleine Webauftritte mit Datenbankanbindung. Zwar konzentrieren sich auch die Autoren auf Webananwendungen, da MySQL sehr häufig in solchen Anwendungen, auch in großem Maßstab, eingesetzt wird. Aber das wird hauptsächlich an den Beispielen ersichtlich. Es schränkt daher die Anwendung des Wissens, das die Autoren vermitteln, auf andere Gebiete nicht ein.

Das Buch

Nachdem in Kapitel 1 kurz die MySQL-Architektur vorgestellt wurde, widmen die Autoren gleich ein ganzes Kapitel der Frage, wie man überhaupt Engpässe findet. Sie zeigen auf, welche Möglichkeiten für Benchmarks und Profiling MySQL von Haus aus bietet. Wie überall im Buch weisen sie auf die Unterschiede zwischen den verschiedenen Versionen hin. Überwiegend werden die Versionen 4.1, 5.0 und 5.1 mit Schwerpunkt auf letzterer behandelt, wobei es gelegentlich einen Ausblick auf MySQL 6.0 gibt. Es zeigt sich, dass MySQL kontinuierlich besser wird, und dass es daher zu empfehlen ist, die neueste Produktiv-Version zu verwenden. Im Fall der Profiling-Hilfsmittel wird aber wohl erst die kommende Version 6.0 befriedigende Hilfsmittel zur Verfügung stellen. Macht aber nichts, denn die Autoren weisen auf zahlreiche Tools und Patches hin, die sie zum Teil auch selbst geschrieben haben, und die sie für nahezu essentiell für den ernsthaften Einsatz von MySQL halten. Daneben präsentieren sie viele Beispiele für die Ausgaben von MySQL, mit und ohne Patches, und zeigen auf, wie man diese interpretiert. Schon dieses 50 Seiten umfassende Kapitel dürfte für viele Leser viel Neues bereithalten.

Kapitel 3 befasst sich mit der Optimierung des Schemas und der Indexe. Durch konsequente Anwendung der einfachsten Tipps kann man bereits gewisse Verbesserungen erzielen. Doch das Kapitel geht viel tiefer und zeigt die große Detailkenntnis der Autoren. Sie gehen genau darauf ein, wie MySQL Tabellen und Indexe anlegt und verwaltet, unterscheiden zwischen den verschiedenen Storage-Engines, und analysieren, wie der Abfragen-Optimierer von MySQL arbeitet und wie man ihn optimal nutzt bzw. unterstützt. Über 70 Seiten widmet das Buch diesen Themen.

Das nächste Kapitel befasst sich mit dem gleichen Thema, dieses Mal aber aus der Perspektive der einzelnen Abfragen, und bringt es auf 57 Seiten. Kapitel 5 wendet sich auf 66 Seiten erweiterten MySQL-Funktionen zu, darunter den recht neuen Sichten (Views) und der Volltextsuche. Auch in diesen und einigen weiteren Funktionen lauern eine Menge Fallstricke, die der Leistung schaden können, und es gibt entsprechendes Potential zur Verbesserung.

In Kapitel 6 werden die Servereinstellungen aufgeführt und Anregungen zu ihrer Optimierung gegeben. Ohne eine solch fundierte Anleitung wie hier ist man bei der Änderung der Parameter weitgehend auf Intuition angewiesen, doch das gleicht der Suche einer Stecknadel im Heuhaufen. Abgesehen von diesem Buch gibt es kaum eine Quelle, die die Zusammenhänge so verständlich macht, auch die offizielle Dokumentation nicht.

Hat man alle Möglichkeiten der Software ausgereizt und verspürt immer noch Engpässe, dann ist eine Hardware-Aufrüstung die nächste Möglichkeit. Es kann aber auch die erste Möglichkeit sein, denn in manchen Fällen halten es die Autoren für sinnvoller und billiger, die Anwendung so zu belassen, wie sie ist, und einfach die Hardware aufzurüsten. Das ist das Thema von Kapitel 7. Dabei wird auch auf Aspekte des Betriebssystems mit seiner Thread-Unterstützung und seinen Dateisystemen eingegangen.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung