New benchmark run to test Sergey's schema
authortonnesen <tonnesen>
Thu, 30 May 2002 19:55:18 +0000 (19:55 +0000)
committertonnesen <tonnesen>
Thu, 30 May 2002 19:55:18 +0000 (19:55 +0000)
marc/benchmarks/benchmarkschema
marc/benchmarks/generaterandomdata
marc/benchmarks/getdata-paul
marc/benchmarks/getdata-paul-regex
marc/benchmarks/getdata-steve
marc/benchmarks/runbenchmark

index 118e8d3..0b04dd8 100644 (file)
@@ -4,9 +4,33 @@ CREATE TABLE marc_subfield_table (
                tag char(3) NOT NULL default '',
                bibid bigint(20) NOT NULL default '0',
                subfieldorder tinyint(4) NOT NULL default '0',
-               subfieldmark char(1) NOT NULL default '',
+               subfieldcode char(1) NOT NULL default '',
                subfieldvalue varchar(255) default NULL,
                valuebloblink bigint(20) default NULL,
                PRIMARY KEY (subfieldid),
-               KEY (bibid,tagid,tag,subfieldmark),
+               KEY (bibid,tagid,tag,subfieldcode),
+               KEY (bibid,tag,subfieldcode,subfieldvalue)
                ) TYPE=MyISAM;
+
+
+CREATE TABLE marc_field_table_sergey (
+       fieldid  bigint(20) unsigned NOT NULL auto_increment,
+       bibid    bigint(20) NOT NULL default '0',
+       tagid    bigint(20) NOT NULL default '0',
+       tag      char(3) NOT NULL default '',
+       PRIMARY KEY (fieldid),
+       KEY (bibid),
+       KEY (tagid),
+       KEY (tag)
+);
+
+CREATE TABLE marc_subfield_table_sergey (
+       subfieldid  bigint(20) unsigned NOT NULL auto_increment,
+       fieldid bigint(20),
+       subfieldorder tinyint(4) NOT NULL default '0',
+       subfieldcode char(1) NOT NULL default '',
+       subfieldvalue varchar(255) default NULL,
+       valuebloblink bigint(20) default NULL,
+       PRIMARY KEY (subfieldid),
+       KEY (fieldid)
+);
index 2c6455b..2fdd086 100644 (file)
@@ -31,7 +31,6 @@ for ($bibid=1; $bibid<80000; $bibid++) {
        my $numsubfields=int(rand(10)+1);
        my $subfieldsused;
        my $localsubfieldcounter=0;
-       my $tagvalue='';
        for ($j=1; $j<=$numsubfields; $j++) {
            my $code='';
            until ($code) { 
@@ -44,8 +43,7 @@ for ($bibid=1; $bibid<80000; $bibid++) {
            $subfieldcounter++;
            $localsubfieldcounter++;
            my $word=$words[int(rand($#words))];
-           $tagvalue.="\$$code $word\0";
-           my $sth=$dbh->prepare("insert into marc_2XX_subfield_table (subfieldid, tagid, tag, bibid, subfieldorder, subfieldcode, subfieldvalue) values (?,?,?,?,?,?,?)");
+           my $sth=$dbh->prepare("insert into marc_subfield_table (subfieldid, tagid, tag, bibid, subfieldorder, subfieldcode, subfieldvalue) values (?,?,?,?,?,?,?)");
            my $error=1;
            while ($error) {
                $sth->execute($subfieldcounter, $tagcounter, $tag, $bibid, $localsubfieldcounter, $code, $word);
@@ -56,18 +54,29 @@ for ($bibid=1; $bibid<80000; $bibid++) {
                }
                $sth->finish;
            }
-       }
-       $tagvalue=~s/\0$//;
-       my $error=1;
-       my $sth=$dbh->prepare("insert into marc_0XX_tag_table (bibcode, tagnumber, tagorder, tagvalue) values (?, ?, ?, ?)");
-       while ($error) {
-           $sth->execute($bibid, $tag, $localtagcounter, $tagvalue);
-           $error=$dbh->err;
-           if ($error) {
-               sleep 1;
-               print "ERROR: $error\n";
+           my $error=1;
+           my $sth=$dbh->prepare("insert into marc_field_table_sergey (bibid, tagid, tag) values (?, ?, ?)");
+           while ($error) {
+               $sth->execute($bibid, $localtagcounter, $tag);
+               $error=$dbh->err;
+               if ($error) {
+                   sleep 1;
+                   print "ERROR: $error\n";
+               }
+               $fieldid=$dbh->{'mysql_insertid'};
+               $sth->finish;
+           }
+           $error=1;
+           $sth=$dbh->prepare("insert into marc_subfield_table_sergey (fieldid, subfieldorder, subfieldcode, subfieldvalue) values (?, ?, ?, ?)");
+           while ($error) {
+               $sth->execute($fieldid, $localsubfieldcounter, $code, $word);
+               $error=$dbh->err;
+               if ($error) {
+                   sleep 1;
+                   print "ERROR: $error\n";
+               }
+               $sth->finish;
            }
-           $sth->finish;
        }
     }
 }
index 0484925..04e8597 100644 (file)
@@ -7,7 +7,7 @@
 use DBI;
 
 
-my $dbh=DBI->connect("dbi:mysql:kohabenchmark", 'root', 'testpass');
+my $dbh=DBI->connect("dbi:mysql:kohabenchmark", 'youruserid', 'yourpassword');
 
 my $count=$ARGV[0];
 my $print=$ARGV[1];
index edd33a8..f56a79a 100644 (file)
@@ -7,7 +7,7 @@
 use DBI;
 
 
-my $dbh=DBI->connect("dbi:mysql:kohabenchmark", 'root', 'testpass');
+my $dbh=DBI->connect("dbi:mysql:kohabenchmark", 'youruserid', 'yourpassword');
 
 my $count=$ARGV[0];
 my $print=$ARGV[1];
index 7bdc3ac..6fa1dc2 100644 (file)
@@ -7,18 +7,20 @@
 use DBI;
 
 
-my $dbh=DBI->connect("dbi:mysql:kohabenchmark", 'root', 'testpass');
+my $dbh=DBI->connect("dbi:mysql:kohabenchmark", 'youruserid', 'yourpassword');
 
 my $count=$ARGV[0];
 my $print=$ARGV[1];
-my $bibid=$ARGV[2];
+my $max=$ARGV[2];
+my $bibid=$ARGV[3];
+($max) || ($max=79998);
 
 
 for ($i=0; $i<$count; $i++) {
-    ($bibid) || ($bibid=int(rand(79998))+1);
+    ($bibid) || ($bibid=int(rand($max))+1);
 
     ($print) && (print "BIBID: $bibid\n");
-    my $sth=$dbh->prepare("select tagid,tag,subfieldcode,subfieldvalue from marc_2XX_subfield_table where bibid=$bibid order by tagid,subfieldorder");
+    my $sth=$dbh->prepare("select tagid,tag,subfieldcode,subfieldvalue from marc_subfield_table where bibid=$bibid order by tagid,subfieldorder");
     $sth->execute;
     my $lasttag='';
     while (my ($tagid,$tag,$subfieldcode,$subfieldvalue) = $sth->fetchrow) {
index 566ab06..4e37274 100644 (file)
@@ -4,14 +4,18 @@
 #  This script will iterate through each benchmark 5 times, looking up 500
 #  random records each time.  Results will be printed to STDOUT.
 
-my @benchmarks=('getdata-steve', 'getdata-paul', 'getdata-paul-regex');
+my @benchmarks=('getdata-steve', 'getdata-sergey');
+my $numrecords=$ARGV[0];
+my $numindb=$ARGV[1];
+($numrecords) || ($numrecords=50);
+($numindb) || ($numindb=79998);
 
 my $iterations=5;
 
 foreach (@benchmarks) {
     print "$_:\t";
     for ($i=1; $i<=$iterations; $i++) {
-       my $timer=`/usr/bin/time -f "%E" perl $_ 500 2>&1`;
+       my $timer=`/usr/bin/time -f "%E" perl $_ $numrecords 0 $numindb 2>&1`;
        chomp $timer;
        print "$timer\t";
     }