Commit 44c0545a authored by monty@donna.mysql.fi's avatar monty@donna.mysql.fi

Added test case that crashed Innobase

parent 2ff0334c
#! /bin/sh #! /bin/sh
gmake -k clean || true
/bin/rm -f */.deps/*.P config.cache
path=`dirname $0` aclocal && autoheader && aclocal && automake && autoconf
. "$path/SETUP.sh" (cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
extra_flags="$sparc_cflags -DHAVE_PURIFY -O2" CFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -O2" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_PURIFY -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-debug=full
extra_configs="$sparc_configs --with-debug=full"
. "$path/FINISH.sh" gmake -j 4
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#define INIT_SYM_TABLE 4096 #define INIT_SYM_TABLE 4096
#define INC_SYM_TABLE 4096 #define INC_SYM_TABLE 4096
#define MAX_SYM_SIZE 128 #define MAX_SYM_SIZE 128
#define DUMP_VERSION "1.1" #define DUMP_VERSION "1.2"
#define HEX_INVALID (uchar)255 #define HEX_INVALID (uchar)255
typedef ulong my_long_addr_t ; /* at some point, we need to fix configure typedef ulong my_long_addr_t ; /* at some point, we need to fix configure
...@@ -72,14 +72,15 @@ static void usage() ...@@ -72,14 +72,15 @@ static void usage()
printf("MySQL AB, by Sasha Pachev\n"); printf("MySQL AB, by Sasha Pachev\n");
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n"); printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Resolve numeric stack strace dump into symbols.\n\n"); printf("Resolve numeric stack strace dump into symbols.\n\n");
printf("Usage: %s [OPTIONS]\n", my_progname); printf("Usage: %s [OPTIONS] symbols-file [numeric-dump-file]\n", my_progname);
printf("\n\ printf("\n\
-?, --help Display this help and exit.\n\ -?, --help Display this help and exit.\n\
-h, --host=... Connect to host.\n\ -h, --host=... Connect to host.\n\
-V, --version Output version information and exit.\n\ -V, --version Output version information and exit.\n");
-n, --numeric-dump-file File containing the numeric stack dump.\n\ printf("\n\
-s, --symbols-file=... File containting the output of\ The symbols-file should include the output from: 'nm --numeric-sort mysqld'.\n\
nm --numeric-sort mysqld .\n\n"); The numeric-dump-file should contain a numeric stack trace from mysqld.\n\
If the numeric-dump-file is not given, the stack trace is read from stdin.\n");
} }
...@@ -125,15 +126,38 @@ static int parse_args(int argc, char **argv) ...@@ -125,15 +126,38 @@ static int parse_args(int argc, char **argv)
argc-=optind; argc-=optind;
argv+=optind; argv+=optind;
if (argc > 0)
/*
The following code is to make the command compatible with the old
version that required one to use the -n and -s options
*/
if (argc == 2)
{
sym_fname= argv[0];
dump_fname= argv[1];
}
else if (argc == 1)
{
if (!sym_fname)
sym_fname = argv[0];
else if (!dump_fname)
dump_fname = argv[0];
else
{
usage();
exit(1);
}
}
else if (argc != 0 || !sym_fname)
{ {
usage(); usage();
exit(1); exit(1);
} }
return 0; return 0;
} }
static void open_files() static void open_files()
{ {
fp_out = stdout; fp_out = stdout;
......
...@@ -4,5 +4,7 @@ libsdir = ../libs ...@@ -4,5 +4,7 @@ libsdir = ../libs
INCLUDES = -I../../include -I../include INCLUDES = -I../../include -I../include
CFLAGS= -g -O2 -DDEBUG_OFF
# Don't update the files from bitkeeper # Don't update the files from bitkeeper
%::SCCS/s.% %::SCCS/s.%
...@@ -29,6 +29,10 @@ subdirectory of 'mysql'. */ ...@@ -29,6 +29,10 @@ subdirectory of 'mysql'. */
#include <global.h> #include <global.h>
#include <my_pthread.h> #include <my_pthread.h>
/* Include <sys/stat.h> to get S_I... macros defined for os0file.c */
#include <sys/stat.h>
#undef PACKAGE #undef PACKAGE
#undef VERSION #undef VERSION
......
...@@ -318,11 +318,8 @@ try_again: ...@@ -318,11 +318,8 @@ try_again:
UT_NOT_USED(purpose); UT_NOT_USED(purpose);
if (create_mode == OS_FILE_CREATE) { if (create_mode == OS_FILE_CREATE) {
#ifndef S_IRWXU file = open(name, create_flag, S_IRUSR | S_IWUSR | S_IRGRP
file = open(name, create_flag); | S_IWGRP | S_IROTH | S_IWOTH);
#else
file = open(name, create_flag, S_IRWXU | S_IRWXG | S_IRWXO);
#endif
} else { } else {
file = open(name, create_flag); file = open(name, create_flag);
} }
...@@ -905,19 +902,21 @@ os_aio_init( ...@@ -905,19 +902,21 @@ os_aio_init(
os_aio_segment_wait_events[i] = os_event_create(NULL); os_aio_segment_wait_events[i] = os_event_create(NULL);
} }
#if defined(POSIX_ASYNC_IO) && defined(NOT_USED_WITH_MYSQL) #ifdef POSIX_ASYNC_IO
/* Block aio signals from the current thread and its children: /* Block aio signals from the current thread and its children:
for this to work, the current thread must be the first created for this to work, the current thread must be the first created
in the database, so that all its children will inherit its in the database, so that all its children will inherit its
signal mask */ signal mask */
/* TODO: to work MySQL needs the SIGALARM signal; the following
will not work yet! */
sigemptyset(&sigset); sigemptyset(&sigset);
sigaddset(&sigset, SIGRTMIN + 1 + 0); sigaddset(&sigset, SIGRTMIN + 1 + 0);
sigaddset(&sigset, SIGRTMIN + 1 + 1); sigaddset(&sigset, SIGRTMIN + 1 + 1);
sigaddset(&sigset, SIGRTMIN + 1 + 2); sigaddset(&sigset, SIGRTMIN + 1 + 2);
sigaddset(&sigset, SIGRTMIN + 1 + 3); sigaddset(&sigset, SIGRTMIN + 1 + 3);
pthread_sigmask(SIG_BLOCK, &sigset, NULL); pthread_sigmask(SIG_BLOCK, &sigset, NULL); */
#endif #endif
} }
......
...@@ -408,3 +408,12 @@ CREATE TABLE t1 ( ...@@ -408,3 +408,12 @@ CREATE TABLE t1 (
INSERT INTO t1 VALUES (1, 1); INSERT INTO t1 VALUES (1, 1);
SELECT MIN(B),MAX(b) FROM t1 WHERE t1.a = 1; SELECT MIN(B),MAX(b) FROM t1 WHERE t1.a = 1;
drop table t1; drop table t1;
#
# Crash when using many tables (Test case by Jeremy D Zawodny)
#
create table t1 (a int primary key,b int, c int, d int, e int, f int, g int, h int, i int, j int, k int, l int, m int, n int, o int, p int, q int, r int, s int, t int, u int, v int, w int, x int, y int, z int, a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, b1 int, b2 int, b3 int, b4 int, b5 int, b6 int) type = Innobase;
insert into t1 values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
explain select * from t1 where a > 0 and a < 50;
drop table t1;
...@@ -37,7 +37,6 @@ along with GNU QSORT; see the file COPYING. If not, write to ...@@ -37,7 +37,6 @@ along with GNU QSORT; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "mysys_priv.h" #include "mysys_priv.h"
#if !defined(HAVE_purify) || defined(QSORT_EXTRA_CMP_ARGUMENT)
/* Envoke the comparison function, returns either 0, < 0, or > 0. */ /* Envoke the comparison function, returns either 0, < 0, or > 0. */
#ifdef QSORT_EXTRA_CMP_ARGUMENT #ifdef QSORT_EXTRA_CMP_ARGUMENT
...@@ -123,6 +122,9 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp) ...@@ -123,6 +122,9 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp)
stack_node stack[STACK_SIZE]; /* Largest size needed for 32-bit int!!! */ stack_node stack[STACK_SIZE]; /* Largest size needed for 32-bit int!!! */
stack_node *top = stack + 1; stack_node *top = stack + 1;
char *pivot_buffer = (char *) my_alloca ((int) size); char *pivot_buffer = (char *) my_alloca ((int) size);
#ifdef HAVE_purify
stack[0].lo=stack[0].hi=0;
#endif
while (STACK_NOT_EMPTY) while (STACK_NOT_EMPTY)
{ {
...@@ -255,4 +257,3 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp) ...@@ -255,4 +257,3 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp)
} }
SORT_RETURN; SORT_RETURN;
} }
#endif /* HAVE_purify */
Testing server 'MySQL 3.23.31' at 2001-12-17 12:46:04 Testing server 'MySQL 3.23.36' at 2001-03-26 1:22:18
ATIS table test ATIS table test
...@@ -6,15 +6,15 @@ Creating tables ...@@ -6,15 +6,15 @@ Creating tables
Time for create_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for create_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Inserting data Inserting data
Time to insert (9768): 3 wallclock secs ( 0.60 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to insert (9768): 4 wallclock secs ( 0.57 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Retrieving data Retrieving data
Time for select_simple_join (500): 2 wallclock secs ( 0.58 usr 0.37 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_simple_join (500): 1 wallclock secs ( 0.58 usr 0.37 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_join (100): 1 wallclock secs ( 0.42 usr 0.32 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_join (100): 2 wallclock secs ( 0.44 usr 0.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key_prefix_join (100): 11 wallclock secs ( 3.27 usr 2.59 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_key_prefix_join (100): 11 wallclock secs ( 3.47 usr 2.55 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_distinct (800): 10 wallclock secs ( 1.49 usr 0.94 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_distinct (800): 10 wallclock secs ( 1.53 usr 0.98 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_group (2800): 11 wallclock secs ( 1.45 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_group (2800): 11 wallclock secs ( 1.44 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Removing tables Removing tables
Time to drop_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to drop_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 38 wallclock secs ( 7.82 usr 5.51 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 39 wallclock secs ( 8.05 usr 5.53 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Benchmark DBD suite: 2.11a Benchmark DBD suite: 2.12
Date of test: 2001-12-17 12:46:04 Date of test: 2001-03-26 1:22:18
Running tests on: Linux 2.2.16-SMP alpha Running tests on: Linux 2.2.16-SMP alpha
Arguments: Arguments:
Comments: Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; cxx 6.3 + ccc 6.2.9 Comments: Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; cxx 6.3 + ccc 6.2.9
Limits from: Limits from:
Server version: MySQL 3.23.31 Server version: MySQL 3.23.36
ATIS: Total time: 38 wallclock secs ( 7.82 usr 5.51 sys + 0.00 cusr 0.00 csys = 0.00 CPU) ATIS: Total time: 39 wallclock secs ( 8.05 usr 5.53 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
alter-table: Total time: 357 wallclock secs ( 0.28 usr 0.20 sys + 0.00 cusr 0.00 csys = 0.00 CPU) alter-table: Total time: 405 wallclock secs ( 0.30 usr 0.16 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
big-tables: Total time: 40 wallclock secs ( 7.30 usr 9.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU) big-tables: Total time: 40 wallclock secs ( 7.49 usr 10.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
connect: Total time: 76 wallclock secs (33.82 usr 17.71 sys + 0.00 cusr 0.00 csys = 0.00 CPU) connect: Total time: 76 wallclock secs (33.34 usr 18.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
create: Total time: 226 wallclock secs ( 9.57 usr 4.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU) create: Total time: 147 wallclock secs ( 9.75 usr 5.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
insert: Total time: 1971 wallclock secs (441.85 usr 245.30 sys + 0.00 cusr 0.00 csys = 0.00 CPU) insert: Total time: 2318 wallclock secs (663.06 usr 307.16 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
select: Total time: 1193 wallclock secs (57.33 usr 27.36 sys + 0.00 cusr 0.00 csys = 0.00 CPU) select: Total time: 1346 wallclock secs (63.34 usr 28.50 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
wisconsin: Total time: 18 wallclock secs ( 3.78 usr 3.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU) wisconsin: Total time: 19 wallclock secs ( 3.99 usr 3.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
All 8 test executed successfully All 8 test executed successfully
Totals per operation: Totals per operation:
Operation seconds usr sys cpu tests Operation seconds usr sys cpu tests
alter_table_add 195.00 0.17 0.09 0.00 992 alter_table_add 219.00 0.16 0.07 0.00 992
alter_table_drop 155.00 0.06 0.04 0.00 496 alter_table_drop 178.00 0.06 0.04 0.00 496
connect 14.00 7.94 2.31 0.00 10000 connect 14.00 7.60 2.34 0.00 10000
connect+select_1_row 17.00 8.45 3.13 0.00 10000 connect+select_1_row 17.00 8.25 3.12 0.00 10000
connect+select_simple 16.00 8.44 3.19 0.00 10000 connect+select_simple 16.00 7.88 3.28 0.00 10000
count 63.00 0.04 0.01 0.00 100 count 55.00 0.04 0.01 0.00 100
count_distinct 103.00 0.72 0.23 0.00 2000 count_distinct 48.00 0.40 0.10 0.00 1000
count_distinct_big 140.00 6.24 7.47 0.00 120 count_distinct_2 50.00 0.42 0.12 0.00 1000
count_distinct_group 64.00 1.01 0.62 0.00 1000 count_distinct_big 137.00 6.05 7.22 0.00 120
count_distinct_group_on_key 49.00 0.49 0.15 0.00 1000 count_distinct_group 69.00 0.98 0.61 0.00 1000
count_distinct_group_on_key_parts 64.00 1.03 0.60 0.00 1000 count_distinct_group_on_key 42.00 0.42 0.15 0.00 1000
count_group_on_key_parts 44.00 0.96 0.58 0.00 1000 count_distinct_group_on_key_parts 70.00 0.97 0.59 0.00 1000
count_on_key 433.00 16.28 4.78 0.00 50100 count_distinct_key_prefix 38.00 0.39 0.12 0.00 1000
create+drop 12.00 2.23 1.21 0.00 10000 count_group_on_key_parts 42.00 0.94 0.56 0.00 1000
create_MANY_tables 185.00 1.92 0.72 0.00 10000 count_on_key 391.00 16.30 4.71 0.00 50100
create_index 3.00 0.00 0.00 0.00 8 create+drop 13.00 2.39 1.35 0.00 10000
create_key+drop 17.00 3.97 1.39 0.00 10000 create_MANY_tables 104.00 1.76 0.73 0.00 10000
create_index 4.00 0.00 0.00 0.00 8
create_key+drop 17.00 4.00 1.40 0.00 10000
create_table 0.00 0.00 0.00 0.00 31 create_table 0.00 0.00 0.00 0.00 31
delete_all 13.00 0.00 0.00 0.00 12 delete_all 10.00 0.00 0.00 0.00 12
delete_all_many_keys 51.00 0.02 0.01 0.00 1 delete_all_many_keys 51.00 0.03 0.01 0.00 1
delete_big 0.00 0.00 0.00 0.00 1 delete_big 0.00 0.00 0.00 0.00 1
delete_big_many_keys 51.00 0.02 0.01 0.00 128 delete_big_many_keys 51.00 0.03 0.01 0.00 128
delete_key 3.00 0.63 0.60 0.00 10000 delete_key 5.00 0.64 0.59 0.00 10000
drop_index 4.00 0.00 0.00 0.00 8 drop_index 4.00 0.00 0.00 0.00 8
drop_table 0.00 0.00 0.00 0.00 28 drop_table 0.00 0.00 0.00 0.00 28
drop_table_when_MANY_tables 6.00 0.55 0.56 0.00 10000 drop_table_when_MANY_tables 7.00 0.64 0.63 0.00 10000
insert 127.00 20.22 21.45 0.00 350768 insert 137.00 24.38 23.04 0.00 350768
insert_duplicates 39.00 5.59 7.08 0.00 100000 insert_duplicates 40.00 5.91 6.68 0.00 100000
insert_key 94.00 8.32 6.44 0.00 100000 insert_key 97.00 8.84 6.70 0.00 100000
insert_many_fields 15.00 0.36 0.15 0.00 2000 insert_many_fields 14.00 0.33 0.14 0.00 2000
insert_select_1_key 6.00 0.00 0.00 0.00 1 insert_select_1_key 6.00 0.00 0.00 0.00 1
insert_select_2_keys 7.00 0.00 0.00 0.00 1 insert_select_2_keys 6.00 0.00 0.00 0.00 1
min_max 29.00 0.02 0.00 0.00 60 min_max 22.00 0.02 0.00 0.00 60
min_max_on_key 181.00 26.65 8.21 0.00 85000 min_max_on_key 164.00 26.11 7.96 0.00 85000
multiple_value_insert 8.00 1.89 0.05 0.00 100000 multiple_value_insert 7.00 1.91 0.06 0.00 100000
order_by_big 51.00 18.89 20.86 0.00 10 order_by_big 49.00 17.41 20.76 0.00 10
order_by_big_key 34.00 19.98 13.84 0.00 10 order_by_big_key 32.00 18.87 13.82 0.00 10
order_by_big_key2 32.00 18.45 13.58 0.00 10 order_by_big_key2 31.00 17.40 13.49 0.00 10
order_by_big_key_desc 34.00 19.99 13.84 0.00 10 order_by_big_key_desc 33.00 18.88 13.81 0.00 10
order_by_big_key_diff 46.00 18.41 20.32 0.00 10 order_by_big_key_diff 45.00 17.45 20.78 0.00 10
order_by_big_key_prefix 32.00 18.52 13.53 0.00 10 order_by_big_key_prefix 31.00 17.49 13.48 0.00 10
order_by_key2_diff 5.00 1.80 1.17 0.00 500 order_by_key2_diff 4.00 1.66 1.15 0.00 500
order_by_key_prefix 2.00 1.08 0.62 0.00 500 order_by_key_prefix 3.00 0.93 0.63 0.00 500
order_by_range 5.00 1.08 0.61 0.00 500 order_by_range 4.00 0.95 0.63 0.00 500
outer_join 62.00 0.00 0.00 0.00 10 outer_join 67.00 0.01 0.00 0.00 10
outer_join_found 56.00 0.00 0.00 0.00 10 outer_join_found 59.00 0.01 0.00 0.00 10
outer_join_not_found 38.00 0.00 0.00 0.00 500 outer_join_not_found 41.00 0.01 0.00 0.00 500
outer_join_on_key 43.00 0.00 0.00 0.00 10 outer_join_on_key 45.00 0.00 0.00 0.00 10
select_1_row 2.00 0.29 0.81 0.00 10000 select_1_row 3.00 0.30 0.80 0.00 10000
select_2_rows 3.00 0.32 0.93 0.00 10000 select_2_rows 2.00 0.32 0.95 0.00 10000
select_big 52.00 26.60 19.56 0.00 10080 select_big 52.00 25.87 20.37 0.00 10080
select_column+column 3.00 0.30 0.72 0.00 10000 select_column+column 3.00 0.31 0.79 0.00 10000
select_diff_key 212.00 0.25 0.07 0.00 500 select_diff_key 146.00 0.24 0.05 0.00 500
select_distinct 10.00 1.49 0.94 0.00 800 select_distinct 10.00 1.53 0.98 0.00 800
select_group 55.00 1.49 0.66 0.00 2911 select_group 51.00 1.49 0.67 0.00 2911
select_group_when_MANY_tables 6.00 0.89 0.87 0.00 10000 select_group_when_MANY_tables 6.00 0.95 0.90 0.00 10000
select_join 1.00 0.42 0.32 0.00 100 select_join 2.00 0.44 0.33 0.00 100
select_key 137.00 75.43 22.46 0.00 200000 select_key 138.00 75.48 21.52 0.00 200000
select_key2 142.00 74.95 22.32 0.00 200000 select_key2 143.00 75.08 21.72 0.00 200000
select_key_prefix 144.00 76.14 21.41 0.00 200000 select_key2_return_key 136.00 72.18 19.55 0.00 200000
select_key_prefix_join 11.00 3.27 2.59 0.00 100 select_key2_return_prim 140.00 73.57 20.03 0.00 200000
select_many_fields 25.00 6.93 9.32 0.00 2000 select_key_prefix 144.00 76.03 21.36 0.00 200000
select_range 217.00 7.91 5.38 0.00 410 select_key_prefix_join 11.00 3.47 2.55 0.00 100
select_range_key2 19.00 6.55 2.30 0.00 25010 select_key_return_key 135.00 73.99 20.17 0.00 200000
select_range_prefix 19.00 6.53 2.25 0.00 25010 select_many_fields 25.00 7.16 10.10 0.00 2000
select_simple 2.00 0.30 0.78 0.00 10000 select_query_cache 82.00 3.31 1.00 0.00 10000
select_simple_join 2.00 0.58 0.37 0.00 500 select_query_cache2 83.00 3.20 0.96 0.00 10000
update_big 27.00 0.00 0.00 0.00 10 select_range 225.00 7.61 5.12 0.00 410
update_of_key 23.00 2.66 3.25 0.00 50000 select_range_key2 19.00 6.41 2.20 0.00 25010
update_of_key_big 21.00 0.03 0.03 0.00 501 select_range_prefix 20.00 6.33 2.25 0.00 25010
update_of_primary_key_many_keys 22.00 0.02 0.01 0.00 256 select_simple 1.00 0.33 0.77 0.00 10000
update_with_key 124.00 18.23 19.54 0.00 300000 select_simple_join 1.00 0.58 0.37 0.00 500
update_with_key_prefix 38.00 5.99 6.10 0.00 100000 update_big 25.00 0.00 0.00 0.00 10
wisc_benchmark 4.00 1.62 0.85 0.00 114 update_of_key 26.00 2.53 2.87 0.00 50000
TOTALS 3969.00 561.61 313.29 0.00 2046247 update_of_key_big 19.00 0.05 0.03 0.00 501
update_of_primary_key_many_keys 23.00 0.02 0.03 0.00 256
update_with_key 134.00 23.08 21.47 0.00 300000
update_with_key_prefix 41.00 6.81 6.85 0.00 100000
wisc_benchmark 4.00 1.59 0.88 0.00 114
TOTALS 4439.00 789.18 378.53 0.00 2667247
Testing server 'MySQL 3.23.31' at 2001-12-17 12:46:42 Testing server 'MySQL 3.23.36' at 2001-03-26 1:22:58
Testing of ALTER TABLE Testing of ALTER TABLE
Testing with 1000 columns and 1000 rows in 20 steps Testing with 1000 columns and 1000 rows in 20 steps
Insert data into the table Insert data into the table
Time for insert (1000) 0 wallclock secs ( 0.05 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for insert (1000) 0 wallclock secs ( 0.07 usr 0.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for alter_table_add (992): 195 wallclock secs ( 0.17 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for alter_table_add (992): 219 wallclock secs ( 0.16 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_index (8): 3 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for create_index (8): 4 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for drop_index (8): 4 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for drop_index (8): 4 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for alter_table_drop (496): 155 wallclock secs ( 0.06 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for alter_table_drop (496): 178 wallclock secs ( 0.06 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 357 wallclock secs ( 0.28 usr 0.20 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 405 wallclock secs ( 0.30 usr 0.16 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:52:39 Testing server 'MySQL 3.23.36' at 2001-03-26 1:29:43
Testing of some unusual tables Testing of some unusual tables
All tests are done 1000 times with 1000 fields All tests are done 1000 times with 1000 fields
Testing table with 1000 fields Testing table with 1000 fields
Testing select * from table with 1 record Testing select * from table with 1 record
Time to select_many_fields(1000): 10 wallclock secs ( 3.38 usr 4.68 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to select_many_fields(1000): 10 wallclock secs ( 3.55 usr 5.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing select all_fields from table with 1 record Testing select all_fields from table with 1 record
Time to select_many_fields(1000): 15 wallclock secs ( 3.55 usr 4.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to select_many_fields(1000): 15 wallclock secs ( 3.61 usr 5.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing insert VALUES() Testing insert VALUES()
Time to insert_many_fields(1000): 5 wallclock secs ( 0.33 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to insert_many_fields(1000): 5 wallclock secs ( 0.30 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing insert (all_fields) VALUES() Testing insert (all_fields) VALUES()
Time to insert_many_fields(1000): 10 wallclock secs ( 0.03 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to insert_many_fields(1000): 9 wallclock secs ( 0.03 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 40 wallclock secs ( 7.30 usr 9.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 40 wallclock secs ( 7.49 usr 10.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:53:19 Testing server 'MySQL 3.23.36' at 2001-03-26 1:30:23
Testing the speed of connecting to the server and sending of data Testing the speed of connecting to the server and sending of data
All tests are done 10000 times All tests are done 10000 times
Testing connection/disconnect Testing connection/disconnect
Time to connect (10000): 14 wallclock secs ( 7.94 usr 2.31 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to connect (10000): 14 wallclock secs ( 7.60 usr 2.34 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test connect/simple select/disconnect Test connect/simple select/disconnect
Time for connect+select_simple (10000): 16 wallclock secs ( 8.44 usr 3.19 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for connect+select_simple (10000): 16 wallclock secs ( 7.88 usr 3.28 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test simple select Test simple select
Time for select_simple (10000): 2 wallclock secs ( 0.30 usr 0.78 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_simple (10000): 1 wallclock secs ( 0.33 usr 0.77 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing connect/select 1 row from table/disconnect Testing connect/select 1 row from table/disconnect
Time to connect+select_1_row (10000): 17 wallclock secs ( 8.45 usr 3.13 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to connect+select_1_row (10000): 17 wallclock secs ( 8.25 usr 3.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing select 1 row from table Testing select 1 row from table
Time to select_1_row (10000): 2 wallclock secs ( 0.29 usr 0.81 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to select_1_row (10000): 3 wallclock secs ( 0.30 usr 0.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing select 2 rows from table Testing select 2 rows from table
Time to select_2_rows (10000): 3 wallclock secs ( 0.32 usr 0.93 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to select_2_rows (10000): 2 wallclock secs ( 0.32 usr 0.95 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test select with aritmetic (+) Test select with aritmetic (+)
Time for select_column+column (10000): 3 wallclock secs ( 0.30 usr 0.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_column+column (10000): 3 wallclock secs ( 0.31 usr 0.79 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing retrieval of big records (65000 bytes) Testing retrieval of big records (65000 bytes)
Time to select_big (10000): 19 wallclock secs ( 7.77 usr 5.83 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to select_big (10000): 20 wallclock secs ( 8.34 usr 6.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 76 wallclock secs (33.82 usr 17.71 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 76 wallclock secs (33.34 usr 18.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:54:35 Testing server 'MySQL 3.23.36' at 2001-03-26 1:31:40
Testing the speed of creating and droping tables Testing the speed of creating and droping tables
Testing with 10000 tables and 10000 loop count Testing with 10000 tables and 10000 loop count
Testing create of tables Testing create of tables
Time for create_MANY_tables (10000): 185 wallclock secs ( 1.92 usr 0.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for create_MANY_tables (10000): 104 wallclock secs ( 1.76 usr 0.73 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Accessing tables Accessing tables
Time to select_group_when_MANY_tables (10000): 6 wallclock secs ( 0.89 usr 0.87 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to select_group_when_MANY_tables (10000): 6 wallclock secs ( 0.95 usr 0.90 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing drop Testing drop
Time for drop_table_when_MANY_tables (10000): 6 wallclock secs ( 0.55 usr 0.56 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for drop_table_when_MANY_tables (10000): 7 wallclock secs ( 0.64 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing create+drop Testing create+drop
Time for create+drop (10000): 12 wallclock secs ( 2.23 usr 1.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for create+drop (10000): 13 wallclock secs ( 2.39 usr 1.35 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_key+drop (10000): 17 wallclock secs ( 3.97 usr 1.39 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for create_key+drop (10000): 17 wallclock secs ( 4.00 usr 1.40 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 226 wallclock secs ( 9.57 usr 4.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 147 wallclock secs ( 9.75 usr 5.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:58:21 Testing server 'MySQL 3.23.36' at 2001-03-26 1:34:07
Testing the speed of inserting data into 1 table and do some selects on it. Testing the speed of inserting data into 1 table and do some selects on it.
The tests are done with a table that has 100000 rows. The tests are done with a table that has 100000 rows.
...@@ -8,80 +8,83 @@ Creating tables ...@@ -8,80 +8,83 @@ Creating tables
Inserting 100000 rows in order Inserting 100000 rows in order
Inserting 100000 rows in reverse order Inserting 100000 rows in reverse order
Inserting 100000 rows in random order Inserting 100000 rows in random order
Time for insert (300000): 106 wallclock secs (16.70 usr 17.90 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for insert (300000): 114 wallclock secs (20.61 usr 19.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing insert of duplicates Testing insert of duplicates
Time for insert_duplicates (100000): 39 wallclock secs ( 5.59 usr 7.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for insert_duplicates (100000): 40 wallclock secs ( 5.91 usr 6.68 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Retrieving data from the table Retrieving data from the table
Time for select_big (10:3000000): 32 wallclock secs (18.71 usr 13.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_big (10:3000000): 31 wallclock secs (17.41 usr 13.54 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_big_key (10:3000000): 34 wallclock secs (19.98 usr 13.84 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_big_key (10:3000000): 32 wallclock secs (18.87 usr 13.82 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_big_key_desc (10:3000000): 34 wallclock secs (19.99 usr 13.84 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_big_key_desc (10:3000000): 33 wallclock secs (18.88 usr 13.81 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_big_key_prefix (10:3000000): 32 wallclock secs (18.52 usr 13.53 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_big_key_prefix (10:3000000): 31 wallclock secs (17.49 usr 13.48 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_big_key2 (10:3000000): 32 wallclock secs (18.45 usr 13.58 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_big_key2 (10:3000000): 31 wallclock secs (17.40 usr 13.49 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_big_key_diff (10:3000000): 46 wallclock secs (18.41 usr 20.32 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_big_key_diff (10:3000000): 45 wallclock secs (17.45 usr 20.78 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_big (10:3000000): 51 wallclock secs (18.89 usr 20.86 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_big (10:3000000): 49 wallclock secs (17.41 usr 20.76 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_range (500:125750): 5 wallclock secs ( 1.08 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_range (500:125750): 4 wallclock secs ( 0.95 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_key_prefix (500:125750): 2 wallclock secs ( 1.08 usr 0.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_key_prefix (500:125750): 3 wallclock secs ( 0.93 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for order_by_key2_diff (500:250500): 5 wallclock secs ( 1.80 usr 1.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for order_by_key2_diff (500:250500): 4 wallclock secs ( 1.66 usr 1.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_diff_key (500:1000): 212 wallclock secs ( 0.25 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_diff_key (500:1000): 146 wallclock secs ( 0.24 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_range_prefix (5010:42084): 10 wallclock secs ( 2.79 usr 0.95 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_range_prefix (5010:42084): 11 wallclock secs ( 2.76 usr 0.96 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_range_key2 (5010:42084): 10 wallclock secs ( 2.87 usr 0.93 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_range_key2 (5010:42084): 11 wallclock secs ( 2.81 usr 0.91 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key_prefix (200000): 144 wallclock secs (76.14 usr 21.41 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_key_prefix (200000): 144 wallclock secs (76.03 usr 21.36 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key (200000): 137 wallclock secs (75.43 usr 22.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_key (200000): 138 wallclock secs (75.48 usr 21.52 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key2 (200000): 142 wallclock secs (74.95 usr 22.32 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_key_return_key (200000): 135 wallclock secs (73.99 usr 20.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key2 (200000): 143 wallclock secs (75.08 usr 21.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key2_return_key (200000): 136 wallclock secs (72.18 usr 19.55 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key2_return_prim (200000): 140 wallclock secs (73.57 usr 20.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test of compares with simple ranges Test of compares with simple ranges
Time for select_range_prefix (20000:43500): 9 wallclock secs ( 3.74 usr 1.30 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_range_prefix (20000:43500): 9 wallclock secs ( 3.57 usr 1.29 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_range_key2 (20000:43500): 9 wallclock secs ( 3.68 usr 1.37 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_range_key2 (20000:43500): 8 wallclock secs ( 3.60 usr 1.29 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_group (111): 44 wallclock secs ( 0.04 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_group (111): 40 wallclock secs ( 0.05 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for min_max_on_key (15000): 9 wallclock secs ( 4.80 usr 1.41 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for min_max_on_key (15000): 9 wallclock secs ( 4.67 usr 1.41 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for min_max (60): 29 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for min_max (60): 22 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_on_key (100): 40 wallclock secs ( 0.04 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_on_key (100): 36 wallclock secs ( 0.03 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count (100): 63 wallclock secs ( 0.04 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count (100): 55 wallclock secs ( 0.04 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_big (20): 58 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct_big (20): 55 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing update of keys with functions Testing update of keys with functions
Time for update_of_key (50000): 23 wallclock secs ( 2.66 usr 3.25 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for update_of_key (50000): 26 wallclock secs ( 2.53 usr 2.87 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for update_of_key_big (501): 21 wallclock secs ( 0.03 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for update_of_key_big (501): 19 wallclock secs ( 0.05 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing update with key Testing update with key
Time for update_with_key (300000): 124 wallclock secs (18.23 usr 19.54 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for update_with_key (300000): 134 wallclock secs (23.08 usr 21.47 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for update_with_key_prefix (100000): 38 wallclock secs ( 5.99 usr 6.10 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for update_with_key_prefix (100000): 41 wallclock secs ( 6.81 usr 6.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing update of all rows Testing update of all rows
Time for update_big (10): 27 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for update_big (10): 25 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing left outer join Testing left outer join
Time for outer_join_on_key (10:10): 43 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for outer_join_on_key (10:10): 45 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for outer_join (10:10): 62 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for outer_join (10:10): 67 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for outer_join_found (10:10): 56 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for outer_join_found (10:10): 59 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for outer_join_not_found (500:10): 38 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for outer_join_not_found (500:10): 41 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing INSERT INTO ... SELECT Testing INSERT INTO ... SELECT
Time for insert_select_1_key (1): 6 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for insert_select_1_key (1): 6 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for insert_select_2_keys (1): 7 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for insert_select_2_keys (1): 6 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for drop table(2): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for drop table(2): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing delete Testing delete
Time for delete_key (10000): 3 wallclock secs ( 0.63 usr 0.60 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for delete_key (10000): 5 wallclock secs ( 0.64 usr 0.59 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for delete_all (12): 13 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for delete_all (12): 10 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Insert into table with 16 keys and with a primary key with 16 parts Insert into table with 16 keys and with a primary key with 16 parts
Time for insert_key (100000): 94 wallclock secs ( 8.32 usr 6.44 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for insert_key (100000): 97 wallclock secs ( 8.84 usr 6.70 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing update of keys Testing update of keys
Time for update_of_primary_key_many_keys (256): 22 wallclock secs ( 0.02 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for update_of_primary_key_many_keys (256): 23 wallclock secs ( 0.02 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Deleting rows from the table Deleting rows from the table
Time for delete_big_many_keys (128): 51 wallclock secs ( 0.02 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for delete_big_many_keys (128): 51 wallclock secs ( 0.03 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Deleting everything from table Deleting everything from table
Time for delete_all_many_keys (1): 51 wallclock secs ( 0.02 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for delete_all_many_keys (1): 51 wallclock secs ( 0.03 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Inserting 100000 rows with multiple values Inserting 100000 rows with multiple values
Time for multiple_value_insert (100000): 8 wallclock secs ( 1.89 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for multiple_value_insert (100000): 7 wallclock secs ( 1.91 usr 0.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for drop table(1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for drop table(1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 1971 wallclock secs (441.85 usr 245.30 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 2318 wallclock secs (663.06 usr 307.16 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 13:31:13 Testing server 'MySQL 3.23.36' at 2001-03-26 2:12:47
Testing the speed of selecting on keys that consist of many parts Testing the speed of selecting on keys that consist of many parts
The test-table has 10000 rows and the test is done with 500 ranges. The test-table has 10000 rows and the test is done with 500 ranges.
Creating table Creating table
Inserting 10000 rows Inserting 10000 rows
Time to insert (10000): 4 wallclock secs ( 0.76 usr 0.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to insert (10000): 4 wallclock secs ( 0.81 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test if the database has a query cache
Time for select_query_cache (10000): 82 wallclock secs ( 3.31 usr 1.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_query_cache2 (10000): 83 wallclock secs ( 3.20 usr 0.96 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing big selects on the table Testing big selects on the table
Time for select_big (70:17207): 1 wallclock secs ( 0.12 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_big (70:17207): 1 wallclock secs ( 0.12 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_range (410:1057904): 217 wallclock secs ( 7.91 usr 5.38 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for select_range (410:1057904): 225 wallclock secs ( 7.61 usr 5.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for min_max_on_key (70000): 172 wallclock secs (21.85 usr 6.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for min_max_on_key (70000): 155 wallclock secs (21.44 usr 6.55 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_on_key (50000): 393 wallclock secs (16.24 usr 4.77 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_on_key (50000): 355 wallclock secs (16.27 usr 4.69 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_group_on_key_parts (1000:100000): 44 wallclock secs ( 0.96 usr 0.58 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_group_on_key_parts (1000:100000): 42 wallclock secs ( 0.94 usr 0.56 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing count(distinct) on the table Testing count(distinct) on the table
Time for count_distinct (2000:2000): 103 wallclock secs ( 0.72 usr 0.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct_key_prefix (1000:1000): 38 wallclock secs ( 0.39 usr 0.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group_on_key (1000:6000): 49 wallclock secs ( 0.49 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct (1000:1000): 48 wallclock secs ( 0.40 usr 0.10 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group_on_key_parts (1000:100000): 64 wallclock secs ( 1.03 usr 0.60 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct_2 (1000:1000): 50 wallclock secs ( 0.42 usr 0.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group (1000:100000): 64 wallclock secs ( 1.01 usr 0.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct_group_on_key (1000:6000): 42 wallclock secs ( 0.42 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_big (100:1000000): 82 wallclock secs ( 6.23 usr 7.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct_group_on_key_parts (1000:100000): 70 wallclock secs ( 0.97 usr 0.59 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 1193 wallclock secs (57.33 usr 27.36 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for count_distinct_group (1000:100000): 69 wallclock secs ( 0.98 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_big (100:1000000): 82 wallclock secs ( 6.04 usr 7.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 1346 wallclock secs (63.34 usr 28.50 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 13:51:06 Testing server 'MySQL 3.23.36' at 2001-03-26 2:35:13
Wisconsin benchmark test Wisconsin benchmark test
Time for create_table (3): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for create_table (3): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Inserting data Inserting data
Time to insert (31000): 14 wallclock secs ( 2.16 usr 2.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to insert (31000): 15 wallclock secs ( 2.39 usr 2.30 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to delete_big (1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time to delete_big (1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Running actual benchmark Running actual benchmark
Time for wisc_benchmark (114): 4 wallclock secs ( 1.62 usr 0.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for wisc_benchmark (114): 4 wallclock secs ( 1.59 usr 0.88 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 18 wallclock secs ( 3.78 usr 3.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Total time: 19 wallclock secs ( 3.99 usr 3.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
...@@ -158,6 +158,7 @@ class ha_gemini: public handler ...@@ -158,6 +158,7 @@ class ha_gemini: public handler
#define GEM_OPTID_SPIN_RETRIES 1 #define GEM_OPTID_SPIN_RETRIES 1
extern bool gemini_skip; extern bool gemini_skip;
extern SHOW_COMP_OPTION have_gemini;
extern long gemini_options; extern long gemini_options;
extern long gemini_buffer_cache; extern long gemini_buffer_cache;
extern long gemini_io_threads; extern long gemini_io_threads;
......
...@@ -917,7 +917,7 @@ innobase_mysql_cmp( ...@@ -917,7 +917,7 @@ innobase_mysql_cmp(
not UNIV_SQL_NULL */ not UNIV_SQL_NULL */
{ {
enum_field_types mysql_tp; enum_field_types mysql_tp;
int ret; int ret;
dbug_assert(a_length != UNIV_SQL_NULL); dbug_assert(a_length != UNIV_SQL_NULL);
dbug_assert(b_length != UNIV_SQL_NULL); dbug_assert(b_length != UNIV_SQL_NULL);
...@@ -928,9 +928,15 @@ innobase_mysql_cmp( ...@@ -928,9 +928,15 @@ innobase_mysql_cmp(
case FIELD_TYPE_STRING: case FIELD_TYPE_STRING:
case FIELD_TYPE_VAR_STRING: case FIELD_TYPE_VAR_STRING:
ret = my_sortncmp((const char*) a, a_length, ret = my_sortncmp((const char*) a, a_length,
(const char*) b, b_length); (const char*) b, b_length);
return ret; if (ret < 0) {
return(-1);
} else if (ret > 0) {
return(1);
} else {
return(0);
}
default: default:
assert(0); assert(0);
} }
......
...@@ -148,6 +148,7 @@ class ha_innobase: public handler ...@@ -148,6 +148,7 @@ class ha_innobase: public handler
}; };
extern bool innobase_skip; extern bool innobase_skip;
extern SHOW_COMP_OPTION have_innobase;
extern uint innobase_init_flags, innobase_lock_type; extern uint innobase_init_flags, innobase_lock_type;
extern ulong innobase_cache_size; extern ulong innobase_cache_size;
extern char *innobase_home, *innobase_tmpdir, *innobase_logdir; extern char *innobase_home, *innobase_tmpdir, *innobase_logdir;
......
...@@ -159,7 +159,10 @@ int ha_init() ...@@ -159,7 +159,10 @@ int ha_init()
if (innobase_init()) if (innobase_init())
return -1; return -1;
if (!innobase_skip) // If we couldn't use handler if (!innobase_skip) // If we couldn't use handler
{
opt_using_transactions=1; opt_using_transactions=1;
have_innobase=SHOW_OPTION_DISABLED;
}
} }
#endif #endif
#ifdef HAVE_GEMINI_DB #ifdef HAVE_GEMINI_DB
...@@ -168,7 +171,10 @@ int ha_init() ...@@ -168,7 +171,10 @@ int ha_init()
if (gemini_init()) if (gemini_init())
return -1; return -1;
if (!gemini_skip) // If we couldn't use handler if (!gemini_skip) // If we couldn't use handler
{
opt_using_transactions=1; opt_using_transactions=1;
have_gemini=SHOW_OPTION_DISABLED;
}
} }
#endif #endif
return 0; return 0;
......
...@@ -1696,9 +1696,9 @@ int main(int argc, char **argv) ...@@ -1696,9 +1696,9 @@ int main(int argc, char **argv)
#ifdef EXTRA_DEBUG #ifdef EXTRA_DEBUG
case 1: case 1:
sql_print_error("\ sql_print_error("\
Warning: You should set server-id to a non-0 value if log-bin is enabled.\n\ Warning: You have enabled the binary log, but you haven't set server-id:\n\
mysqld will log updates to the binary log, but will not accept connections\n\ Updates will be logged to the binary log, but connections to slaves will\n\
from slaves."); not be accepted.");
break; break;
#endif #endif
case 2: case 2:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment