#! /usr/bin/perl # $Id$ use warnings; use strict; (my $program_name = $0) =~ s|.*/||; scalar (@ARGV) == 0 or die "Usage: $program_name\n"; use DBI; my $dsn = 'DBI:mysql:database=test' . ";mysql_read_default_file=$ENV{HOME}/.my.cnf" . ';mysql_read_default_group=mysql'; my $attrs = { 'AutoCommit' => 1, 'PrintError' => 0, 'RaiseError' => 1 }; my $dbh = DBI->connect ($dsn, '', '', $attrs); $dbh->do (q{ DROP TABLE IF EXISTS t1, t2 }); $dbh->do (q{ CREATE TABLE t1 (i INT) }); $dbh->do (q{ INSERT INTO t1 VALUES (1), (2), (3), (4), (5) }); $dbh->do (q{ CREATE TABLE t2 (name CHAR(40), value CHAR(255)) ENGINE = MEMORY; }); $dbh->do (q{ CREATE UNIQUE INDEX name_index USING BTREE ON t2 (name); }); if (0) { for (my $i = 0; $i < 100000; ++$i) { if ($i % 100 == 0) { print "$i\n"; } $dbh->do (qq{ SET \@var$i= REPEAT('a', 100000) }); $dbh->do (qq{ SELECT * FROM t1 GROUP BY i }); } } else { for (my $i = 0; $i < 1_000_000_000; ++$i) { if ($i % 1000 == 0) { print "$i\n"; } $dbh->do (qq{ INSERT INTO t2 VALUES ('var$i', 'a') }); $dbh->do (qq{ SELECT * FROM t1 GROUP BY i }); } } $dbh->disconnect;