Beim Innodb-Plugin aus dem Hause Innobase handelt es sich um eine weiterentwickelte Version der von MySQL mitgelieferten Innodb-Engine [7] . Zu den Verbesserungen zählen eine generelle Optimierung von CPU-Last und I/O-Zugriffen, ein schnellerer Locking-Mechanismus, erweiterte Konfigurations- und Reporting-Möglichkeiten sowie optionales Komprimieren von Tabellen.
Seit MySQL 5.1 ist es möglich, mitgelieferte Engines zu entladen und durch andere Versionen zu ersetzen. Beginnend mit MySQL 5.1.38 liefert MySQL das Innodb-Plugin zusätzlich aus. Da es von MySQL als Release Candidate betrachtet wird, muss der Admin es jedoch manuell aktivieren. Die offizielle MySQL-Dokumentation nennt die dafür notwendigen Schritte [8] . Es ist zu empfehlen, die jeweils aktuelle Innodb-Plugin-Version von der Innodb-Webseite einzuspielen – so kann der Anwender von der Kombination aus Distributions-Updates für den MySQL-Kern und den neuesten Funktionen und Optimierungen des Innodb-Plugins profitieren.
Ubuntu 10.04 liefert den MySQL-Server in der Version 5.1.41 aus. Im Verzeichnis
»/usr/lib/mysql/plugin/
«
befindet sich standardmäßig ein nicht aktiviertes Innodb-Plugin in Version 1.0.4. Aktuell ist aber zurzeit Version 1.0.6. Diese kann der Anwender von der Innodb-Webseite herunterladen und entpacken. Die Datei
»ha_innodb.so
«
kopiert er dann in das Verzeichnis
»/usr/lib/mysql/plugin/
«
. Da Ubuntu standardmäßig Serverdienste per Apparmor schützt, muss er dies entweder deaktivieren oder anpassen, um das Laden von Inhalten aus dem Plugin-Verzeichnis zu erlauben. Der Regelsatz
»/etc/apparmor.d/usr.sbin.mysqld
«
wird hierfür um folgende Zeilen erweitert:
/usr/lib/mysql/plugin/ r, /usr/lib/mysql/plugin/* mr,
Ein Neustart von Apparmor per
»service apparmor restart
«
aktiviert die neuen Regeln. In der
»my.cnf
«
aktiviert der Admin die Innodb-Engine und lädt das Innodb-Plugin, wie in
Listing 2
zu sehen. In der Innodb-Plugin-Dokumentation sind ausführliche Informationen dazu zu finden. Das Error-Log des MySQL-Servers zeigt nach dem Neustart des Datenbankservers mit dem Innodb-Plugin 1.0.6 die in
Listing 3
zu sehende Meldung.
Listing 3
Ohne und mit Innodb-Plugin
Listing 2
Innodb-Plugin in my.cnf
Ausführliche Informationen zu den Optimierungen und neuen Funktionen des Innodb-Plugins bietet die Dokumentation. Hervorstechend ist das neue Barracuda-Dateiformat. Es speichert im Gegensatz zum Standardformat Antelope die Innodb-Tabellen komprimiert. Das kostet zwar zusätzliche CPU-Zyklen, spart dafür aber – je nach Datenstruktur – mitunter viel I/O-Performance ein, da deutlich weniger Operationen auf der Festplatte/SSD erforderlich sind.
Ob sich der Wechsel zu Barracuda lohnt, muss jeder Admin durch Messungen ermitteln. Insbesondere Tabellen mit großen Text- und Blob-Feldern profitieren von der Komprimierung. Übrigens bietet Myisam seit Langem Tabellen im Compressed-Format. Allerdings können komprimierte Myisam-Tabellen nicht im Betrieb verändert werden.