Dienstag, 3. Juni 2014

MySQL - InnoDB vs. MyISAM vs. ARCHIVE im Vergleich

Hier ein kleiner Performance-Vergleich, was das Einlesen und Schreiben von Daten angeht (I/O).

Grundlage ist MySQL 5.6.19 und Perl 5.10.1.
Als Datenquelle dient ein Squid-Log mit 9.244.247 Zeilen (428 MB).

Perl


Als Referenz für die I/O-Performance wird die Log-Datei zuerst nur mit Perl gelesen (OPEN), die "Spalten" dabei in einen Array gepackt und der Inhalt wiederum in eine Datei geschrieben.

Das Ganze dauert auf dem verwendeten vServer 31 Sekunden (verifiziert durch drei Läufe).

MySQL


Nun wird die Datei wieder mit Perl eingelesen, statt in eine andere Datei aber in eine MySQL-Datenbank geschrieben (INSERT INTO). Danach wird die Datenbank abgefragt (SELECT) und der Inhalt wieder ausgegeben. Die Transaktionen werden mit $dbh->prepare() vorbereitet und dann mit $sth->execute() wiederholt ausgeführt.

Getestet werden die Speicher-Engines "InnoDB" und "MyISAM", unkomprimiert und komprimiert, sowie die Engine "ARCHIVE". Ziel ist die Ermittlung der erreichbaren Lese- bzw. Abfrage- und Schreibgeschwindigkeiten sowie die entstehenden Dateigrößen.

InnoDB


...

MyISAM


...

ARCHIVE


...


Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.