summaryrefslogtreecommitdiff
path: root/sql-bench/test-create.sh
diff options
context:
space:
mode:
Diffstat (limited to 'sql-bench/test-create.sh')
-rw-r--r--sql-bench/test-create.sh268
1 files changed, 0 insertions, 268 deletions
diff --git a/sql-bench/test-create.sh b/sql-bench/test-create.sh
deleted file mode 100644
index 8188b47f587..00000000000
--- a/sql-bench/test-create.sh
+++ /dev/null
@@ -1,268 +0,0 @@
-#!@PERL@
-# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free
-# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-# MA 02111-1307, USA
-#
-# This test is for testing how long it takes to create tables,
-# make a count(*) from them and finally drop the tables. These
-# commands will be done in different ways in this test.
-# Using option --fast will drop all the tables in the end
-# of this test with one command instead of making own
-# 'drop' command for each and every table.
-# By changing the variable '$table_amount' value you can make
-# this test a lot harder/easier for your computer to drive.
-# Note that when using value bigger than 64 for this variable
-# will do 'drop table'-command in totally different way because of that
-# how MySQL handles these commands.
-
-##################### Standard benchmark inits ##############################
-
-use Cwd;
-use DBI;
-use Benchmark;
-
-$opt_loop_count=10000; # Change this to make test harder/easier
-# This is the default value for the amount of tables used in this test.
-
-$pwd = cwd(); $pwd = "." if ($pwd eq '');
-require "$pwd/bench-init.pl" || die "Can't read Configuration file: $!\n";
-
-$create_loop_count=$opt_loop_count;
-if ($opt_small_test)
-{
- $opt_loop_count/=100;
- $create_loop_count/=1000;
-}
-
-$max_tables=min($limits->{'max_tables'},$opt_loop_count);
-
-if ($opt_small_test)
-{
- $max_tables=10;
-}
-
-
-print "Testing the speed of creating and dropping tables\n";
-print "Testing with $max_tables tables and $opt_loop_count loop count\n\n";
-
-####
-#### Connect and start timeing
-####
-
-$dbh = $server->connect();
-
-### Test how the database can handle many tables
-### Create $max_tables ; Access all off them with a simple query
-### and then drop the tables
-
-if ($opt_force) # If tables used in this test exist, drop 'em
-{
- print "Okay..Let's make sure that our tables don't exist yet.\n\n";
- for ($i=1 ; $i <= $max_tables ; $i++)
- {
- $dbh->do("drop table bench_$i" . $server->{'drop_attr'});
- }
-}
-
-if ($opt_fast && defined($server->{vacuum}))
-{
- $server->vacuum(1,\$dbh);
-}
-
-print "Testing create of tables\n";
-
-$loop_time=$start_time=new Benchmark;
-
-for ($i=1 ; $i <= $max_tables ; $i++)
-{
- if (do_many($dbh,$server->create("bench_$i",
- ["i int NOT NULL",
- "d double",
- "f float",
- "s char(10)",
- "v varchar(100)"],
- ["primary key (i)"])))
- {
- # Got an error; Do cleanup
- for ($i=1 ; $i <= $max_tables ; $i++)
- {
- $dbh->do("drop table bench_$i" . $server->{'drop_attr'});
- }
- die "Test aborted";
- }
-}
-
-$end_time=new Benchmark;
-print "Time for create_MANY_tables ($max_tables): " .
- timestr(timediff($end_time, $loop_time),"all") . "\n\n";
-
-if ($opt_fast && defined($server->{vacuum}))
-{
- $server->vacuum(1,\$dbh);
-}
-
-#### Here comes $max_tables couples of cont(*) to the tables.
-#### We'll check how long it will take...
-####
-
-print "Accessing tables\n";
-
-if ($limits->{'group_functions'})
-{
- $query="select count(*) from ";
- $type="select_group_when_MANY_tables";
-}
-else
-{
- $query="select * from ";
- $type="select_when_MANY_tables";
-}
-
-$loop_time=new Benchmark;
-for ($i=1 ; $i <= $max_tables ; $i++)
-{
- $sth = $dbh->do("$query bench_$i") or die $DBI::errstr;
-}
-
-$end_time=new Benchmark;
-print "Time to $type ($max_tables): " .
- timestr(timediff($end_time, $loop_time),"all") . "\n\n";
-
-####
-#### Now we are going to drop $max_tables tables;
-####
-
-print "Testing drop\n";
-
-$loop_time=new Benchmark;
-
-if ($opt_fast && $server->{'limits'}->{'multi_drop'} &&
- $server->{'limits'}->{'query_size'} > 11+$max_tables*10)
-{
- my $query="drop table bench_1";
- for ($i=2 ; $i <= $max_tables ; $i++)
- {
- $query.=",bench_$i";
- }
- $sth = $dbh->do($query . $server->{'drop_attr'}) or die $DBI::errstr;
-}
-else
-{
- for ($i=1 ; $i <= $max_tables ; $i++)
- {
- $sth = $dbh->do("drop table bench_$i" . $server->{'drop_attr'})
- or die $DBI::errstr;
- }
-}
-
-
-$end_time=new Benchmark;
-print "Time for drop_table_when_MANY_tables ($max_tables): " .
- timestr(timediff($end_time, $loop_time),"all") . "\n\n";
-
-if ($opt_fast && defined($server->{vacuum}))
-{
- $server->vacuum(1,\$dbh);
-}
-
-#### We'll do first one 'create table' and then we'll drop it
-#### away immediately. This loop shall be executed $opt_loop_count
-#### times.
-
-print "Testing create+drop\n";
-
-$loop_time=new Benchmark;
-
-for ($i=1 ; $i <= $create_loop_count ; $i++)
-{
- do_many($dbh,$server->create("bench_$i",
- ["i int NOT NULL",
- "d double",
- "f float",
- "s char(10)",
- "v varchar(100)"],
- ["primary key (i)"]));
- $sth = $dbh->do("drop table bench_$i" . $server->{'drop_attr'}) or die $DBI::errstr;
-}
-
-$end_time=new Benchmark;
-print "Time for create+drop ($create_loop_count): " .
- timestr(timediff($end_time, $loop_time),"all") . "\n";
-
-if ($opt_fast && defined($server->{vacuum}))
-{
- $server->vacuum(1,\$dbh);
-}
-
-#
-# Same test, but with a table with many keys
-#
-
-my @fields=(); my @keys=();
-$keys=min($limits->{'max_index'},16); # 16 is more than enough
-$seg= min($limits->{'max_index_parts'},$keys,16); # 16 is more than enough
-
-# Make keys on the most important types
-@types=(0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1); # A 1 for each char field
-push(@fields,"field1 tinyint not null");
-push(@fields,"field2 mediumint not null");
-push(@fields,"field3 smallint not null");
-push(@fields,"field4 char(16) not null");
-push(@fields,"field5 integer not null");
-push(@fields,"field6 float not null");
-push(@fields,"field7 double not null");
-for ($i=8 ; $i <= $keys ; $i++)
-{
- push(@fields,"field$i char(5) not null"); # Should be relatively fair
-}
-
-# Let first key contain many segments
-my $query="primary key (";
-for ($i= 1 ; $i <= $seg ; $i++)
-{
- $query.= "field$i,";
-}
-substr($query,-1)=")";
-push (@keys,$query);
-
-#Create other keys
-for ($i=2 ; $i <= $keys ; $i++)
-{
- push(@keys,"index index$i (field$i)");
-}
-
-$loop_time=new Benchmark;
-for ($i=1 ; $i <= $opt_loop_count ; $i++)
-{
- do_many($dbh,$server->create("bench_$i", \@fields, \@index));
- $dbh->do("drop table bench_$i" . $server->{'drop_attr'}) or die $DBI::errstr;
-}
-
-$end_time=new Benchmark;
-print "Time for create_key+drop ($opt_loop_count): " .
- timestr(timediff($end_time, $loop_time),"all") . "\n";
-
-if ($opt_fast && defined($server->{vacuum}))
-{
- $server->vacuum(1,\$dbh);
-}
-
-####
-#### End of benchmark
-####
-
-$dbh->disconnect; # close connection
-end_benchmark($start_time);