diff options
author | unknown <monty@work.mysql.com> | 2001-09-02 18:38:33 +0200 |
---|---|---|
committer | unknown <monty@work.mysql.com> | 2001-09-02 18:38:33 +0200 |
commit | ddee00a6edc735b3bbef42b7d0d662091debd560 (patch) | |
tree | 4689ffbe50e97ce9a47deb58fa2b9e7decdfc6a8 /sql-bench | |
parent | 3c951b6d99dd2753522501adce2d28f40d54a5e3 (diff) | |
parent | 1e97b27ee2b908a17c12962778b82237934a6b73 (diff) | |
download | mariadb-git-ddee00a6edc735b3bbef42b7d0d662091debd560.tar.gz |
merge with 3.23.42
config.guess:
Auto merged
config.sub:
Auto merged
ltconfig:
Auto merged
BitKeeper/deleted/.del-violite.c~d7b85be615595ace:
Auto merged
BitKeeper/deleted/.del-violite.c~984c09cffe14a11b:
Auto merged
client/Makefile.am:
Auto merged
include/errmsg.h:
Auto merged
include/global.h:
Auto merged
include/heap.h:
Auto merged
include/my_sys.h:
Auto merged
include/mysql_com.h:
Auto merged
isam/isamlog.c:
Auto merged
libmysql/libmysql.c:
Auto merged
merge/open.c:
Auto merged
myisam/ft_search.c:
Auto merged
myisam/ftdefs.h:
Auto merged
myisam/mi_test_all.sh:
Auto merged
myisam/myisamchk.c:
Auto merged
myisam/myisamlog.c:
Auto merged
myisam/myisampack.c:
Auto merged
myisam/sort.c:
Auto merged
myisammrg/myrg_open.c:
Auto merged
mysys/hash.c:
Auto merged
mysys/mf_casecnv.c:
Auto merged
mysys/mf_format.c:
Auto merged
mysys/my_lib.c:
Auto merged
mysys/tree.c:
Auto merged
sql-bench/bench-init.pl.sh:
Auto merged
sql/filesort.cc:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/lex.h:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/t/bdb.test:
Auto merged
mysql-test/t/err000001.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/overflow.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_test.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
strings/ctype.c:
Auto merged
Docs/manual.texi:
Change to 3.23 manual.
(I will later add the changes for 4.0 to this copy)
client/mysql.cc:
merge
client/mysqlbinlog.cc:
merge
client/mysqldump.c:
merge
client/mysqltest.c:
merge
client/thread_test.c:
merge
configure.in:
merge
include/my_pthread.h:
merge
include/mysqld_error.h:
merge
libmysql/net.c:
merge
myisam/mi_cache.c:
merge
myisam/mi_check.c:
merge
mysql-test/t/fulltext.test:
merge
mysys/mf_qsort.c:
merge
sql/lock.cc:
merge
sql/md5.c:
merge
sql/mini_client.cc:
merge
sql/share/czech/errmsg.txt:
merge
sql/share/danish/errmsg.txt:
merge
sql/share/dutch/errmsg.txt:
merge
sql/share/english/errmsg.txt:
merge
sql/share/estonian/errmsg.txt:
merge
sql/share/french/errmsg.txt:
merge
sql/share/german/errmsg.txt:
merge
sql/share/greek/errmsg.txt:
merge
sql/share/hungarian/errmsg.txt:
merge
sql/share/italian/errmsg.txt:
merge
sql/share/japanese/errmsg.txt:
merge
sql/share/korean/errmsg.txt:
merge
sql/share/norwegian-ny/errmsg.txt:
merge
sql/share/norwegian/errmsg.txt:
merge
sql/share/polish/errmsg.txt:
merge
sql/share/portuguese/errmsg.txt:
merge
sql/share/romanian/errmsg.txt:
merge
sql/share/russian/errmsg.txt:
merge
sql/share/slovak/errmsg.txt:
merge
sql/share/spanish/errmsg.txt:
merge
sql/share/swedish/errmsg.txt:
merge
sql/sql_load.cc:
merge
sql/sql_repl.cc:
merge
Diffstat (limited to 'sql-bench')
-rw-r--r-- | sql-bench/bench-init.pl.sh | 31 | ||||
-rw-r--r-- | sql-bench/test-insert.sh | 77 | ||||
-rw-r--r-- | sql-bench/test-select.sh | 6 |
3 files changed, 107 insertions, 7 deletions
diff --git a/sql-bench/bench-init.pl.sh b/sql-bench/bench-init.pl.sh index adfa114f569..0c4b1cb1b6a 100644 --- a/sql-bench/bench-init.pl.sh +++ b/sql-bench/bench-init.pl.sh @@ -31,7 +31,7 @@ # $server Object for current server # $limits Hash reference to limits for benchmark -$benchmark_version="2.13"; +$benchmark_version="2.14"; use Getopt::Long; require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n"; @@ -295,6 +295,35 @@ sub do_query die "\nError executing '$query':\n$DBI::errstr\n"; } +# +# Run a query X times +# + +sub time_fetch_all_rows +{ + my($test_text,$result_text,$query,$dbh,$test_count)=@_; + my($i,$loop_time,$end_time,$count,$rows,$estimated); + + print $test_text . "\n" if (defined($test_text)); + $count=$rows=0; + $loop_time=new Benchmark; + for ($i=1 ; $i <= $test_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,$query) or die $DBI::errstr; + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i, + $test_count)); + } + $end_time=new Benchmark; + if ($estimated) + { print "Estimated time"; } + else + { print "Time"; } + print " for $result_text ($count:$rows) " . + timestr(timediff($end_time, $loop_time),"all") . "\n\n"; +} + # # Handle estimated time of the server is too slow diff --git a/sql-bench/test-insert.sh b/sql-bench/test-insert.sh index b8f20b123a5..655e38b1b0e 100644 --- a/sql-bench/test-insert.sh +++ b/sql-bench/test-insert.sh @@ -562,7 +562,7 @@ if ($limits->{'group_functions'}) fetch_all_rows($dbh,"select min(id) from bench1"); fetch_all_rows($dbh,"select max(id) from bench1"); fetch_all_rows($dbh,"select sum(id+0.0) from bench1"); - fetch_all_rows($dbh,"select min(id3),max(id3),sum(id3 +0.0) from bench1"); + fetch_all_rows($dbh,"select min(id3),max(id3),sum(id3-0.0) from bench1"); if ($limits->{'group_func_sql_min_str'}) { fetch_all_rows($dbh,"select min(dummy1),max(dummy1) from bench1"); @@ -579,7 +579,7 @@ if ($limits->{'group_functions'}) $count++; - $sth=$dbh->prepare($query="select count(*),sum(id+0.0),min(id),max(id),avg(id+0.0) from bench1") or die $DBI::errstr; + $sth=$dbh->prepare($query="select count(*),sum(id+0.0),min(id),max(id),avg(id-0.0) from bench1") or die $DBI::errstr; $sth->execute or die $DBI::errstr; @row=$sth->fetchrow_array; if ($row[0] != $total_rows || @@ -1007,6 +1007,43 @@ if ($server->small_rollback_segment()) $dbh = $server->connect(); } +### +### Test speed of IN( value list) +### + +if ($limits->{'left_outer_join'}) +{ + if ($opt_lock_tables) + { + $sth = $dbh->do("UNLOCK TABLES") || die $DBI::errstr; + } + print "\n"; + do_many($dbh,$server->create("bench2", + ["id int NOT NULL"], + ["primary key (id)"])); + + $max_tests=min(($limits->{'query_size'}-50)/6, $opt_loop_count); + + if ($opt_lock_tables) + { + $sth = $dbh->do("LOCK TABLES bench1 READ, bench2 WRITE") || + die $DBI::errstr; + } + test_where_in("bench1","bench2","id",1,10); + test_where_in("bench1","bench2","id",11,min(100,$max_tests)); + test_where_in("bench1","bench2","id",101,min(1000,$max_tests)); + if ($opt_lock_tables) + { + $sth = $dbh->do("UNLOCK TABLES") || die $DBI::errstr; + } + $sth = $dbh->do("DROP TABLE bench2" . $server->{'drop_attr'}) || + die $DBI::errstr; + if ($opt_lock_tables) + { + $sth = $dbh->do("LOCK TABLES bench1 WRITE") || die $DBI::errstr; + } +} + #### #### Test INSERT INTO ... SELECT #### @@ -1067,7 +1104,6 @@ if ($limits->{'insert_select'}) } } - #### #### Do some deletes on the table #### @@ -1605,3 +1641,38 @@ sub check_or_range print " for $check ($count:$found): " . timestr(timediff($end_time, $loop_time),"all") . "\n"; } + +# +# General test of SELECT ... WHERE id in(value-list) +# + +sub test_where_in +{ + my ($t1,$t2,$id,$from,$to)= @_; + + return if ($from >= $to); + + $query="SELECT $t1.* FROM $t1 WHERE $id IN ("; + for ($i=1 ; $i <= $to ; $i++) + { + $query.="$i,"; + } + $query=substr($query,0,length($query)-1) . ")"; + + # Fill join table to have the same id's as 'query' + for ($i= $from ; $i <= $to ; $i++) + { + $dbh->do("insert into $t2 values($i)") or die $DBI::errstr; + } + if ($opt_fast && defined($server->{vacuum})) + { + $server->vacuum(1,\$dbh,"bench1"); + } + + time_fetch_all_rows("Testing SELECT ... WHERE id in ($to values)", + "select_in", $query, $dbh, + $range_loop_count); + time_fetch_all_rows(undef, "select_join_in", + "SELECT $t1.* FROM $t2 left outer join $t1 on ($t1.$id=$t2.$id)", + $dbh, $range_loop_count); +} diff --git a/sql-bench/test-select.sh b/sql-bench/test-select.sh index 3c7efe3c5c2..1ecad5804c5 100644 --- a/sql-bench/test-select.sh +++ b/sql-bench/test-select.sh @@ -136,12 +136,12 @@ if ($limits->{'group_functions'}) print "Test if the database has a query cache\n"; # First ensure that the table is read into memory - fetch_all_rows($dbh,"select sum(idn+$tmp),sum(rev_idn+$tmp) from bench1"); + fetch_all_rows($dbh,"select sum(idn+$tmp),sum(rev_idn-$tmp) from bench1"); $loop_time=new Benchmark; for ($tests=0 ; $tests < $opt_loop_count ; $tests++) { - fetch_all_rows($dbh,"select sum(idn+$tests),sum(rev_idn+$tests) from bench1"); + fetch_all_rows($dbh,"select sum(idn+$tests),sum(rev_idn-$tests) from bench1"); } $end_time=new Benchmark; print "Time for select_query_cache ($opt_loop_count): " . @@ -153,7 +153,7 @@ if ($limits->{'group_functions'}) $loop_time=new Benchmark; for ($tests=0 ; $tests < $opt_loop_count ; $tests++) { - fetch_all_rows($dbh,"select sum(idn+$tests),sum(rev_idn+$tests) from bench1"); + fetch_all_rows($dbh,"select sum(idn+$tests),sum(rev_idn-$tests) from bench1"); } $end_time=new Benchmark; print "Time for select_query_cache2 ($opt_loop_count): " . |