Grundlage ist MySQL 5.6.19 und Perl 5.10.1.
Als Datenquelle dient ein Squid-Log mit 9.244.247 Zeilen (428 MB).
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.
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
...