Da wir an dieser Stelle keinen Perl-Kurs durchführen können/wollen, möchte ich vorschlagen, dass wir einfach mal den Code kurz anschauen:
#!/usr/bin/perl # Programm halloperl.pl -- (c) Demo MySQL-Vortrag lug-camp.ch use strict; use DBI; my ($dbh,$sth,$sql,$err,$c,@res); print "Anmeldung bei MySQL erfolgt...\n"; $dbh=DBI->connect("DBI:mysql:host=localhost;database=archiv", "up","secret",{RaiseError=>0,PrintError=>0}); print "Prüfvorgang, ob Tabelle 'cachetest' ok ist!\n"; $sql = "create table if not exists cachetest (id int not null "; $sql .= "primary key auto_increment, text varchar(30))"; $dbh->do($sql); if ($dbh->err) { $err=$dbh->errstr; print "Fehlermeldung: $err\n"; } print "Hinzufügen von Datensätzen\n"; for($c=0;$c<100000;$c++) { $dbh->do("insert into cachetest () values ()"); if (($c % 2000) == 0) { print ".";} } print "\n"; $sql="select count(*) from cachetest"; @res=$dbh->selectrow_array($sql); print "Die Tabelle enthält nun: $res[0] Datensätze!\n"; $dbh->disconnect(); print "Verbindung zu MySQL beenndet...Programmende\n";
Was macht nun 'halloperl.pl'? Zunächst stellt das Programm eine Verbindung zu MySQL her. Diese erfolgt bei Perl i.d.R. mit DBI, sagen wir mal höchst ungenau, dass DBI eine Perl-Konsole für MySQL realisiert. Da es sich dabei um ein normales Perl-Paket handelt, kann davon ausgegangen werden, dass überall wo MySQL und Perl installiert ist, wir auch das DBI-Paket finden sollten. Wir können üblicherweise also die Datenbank mit Perl ansprechen, ohne zusätzliche Software installieren zu müssen.
Bei 'DBI-connect(...)' melden wir uns am MySQL-Server
an. Zugegeben, dass Passwort im Klartext ist unschön, ich wollte aber
den gesamten Code in einem Beispiel haben. Danach setzen wir einen
SQL-Befehl ab, d.h. wir eröffnen eine neue Tabelle; allerdings nur,
wenn diese nicht bereits existiert.
Sofern wir bis dahin keinen Fehler haben, fügen wir der Tabelle 100'000 Datensätze hinzu. Ich gebe gerne zu, dass dies auf den ersten Blick nicht besonders sinnvoll erscheinen mag, aber keine Bange, wir werden doch noch etwas Gescheites mit der Tabelle anstellen.
Nachdem wir die Datensätze haben, prüfen wir die Anzahl der Datensätze. Beim ersten Start von 'halloperl.pl' sollten wir 100'000 erhalten, bei jedem weiteren Aufruf dürften jeweils weitere 100'000 Datensätze hinzukommen.
Wir können das Beispiel ausführen, indem wir den Inhalt in der Datei '/home/up/halloperl.pl' speichern und anschliessend auf der Linux-Konsole (nicht unter MySQL!) die folgende Zeile eingeben:
perl /home/up/halloperl.pl
Das Programm gibt uns die folgende Ausgabe:
Anmeldung bei MySQL erfolgt... Prüfvorgang, ob Tabelle 'cachetest' ok ist! Hinzufügen von Datensätzen .................................................. Die Tabelle enthält nun: 100000 Datensätze! Verbindung zu MySQL beenndet...Programmende
Wir können uns nun erneut auf der MySQL-Konsole anmelden, die Datenbank 'archiv' wählen (use archiv) und mit 'select count(*) from cachetest' die Anzahl der Datensätze abfragen.