Commit e75b64c0 authored by unknown's avatar unknown

Added test case that crashed Innobase


BUILD/compile-solaris-sparc-purify:
  Changed to old (easy-to-edit) format
extra/resolve_stack_dump.c:
  Don't require -s and -n options
innobase/include/Makefile.i:
  Applied Heikki's changes
innobase/include/univ.i:
  Applied Heikki's changes
innobase/os/os0file.c:
  Fix problem with Signal 14 on Solaris
mysys/mf_qsort.c:
  Fix for purify
sql-bench/Results/ATIS-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/RUN-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/alter-table-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/big-tables-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/connect-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/create-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/insert-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/select-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/wisconsin-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql/ha_gemini.h:
  Fixed that SHOW VARIABLES shows table type as disabled if it can't be initialized.
sql/ha_innobase.cc:
  Merged Heikkis changes
sql/ha_innobase.h:
  Fixed that SHOW VARIABLES shows table type as disabled if it can't be initialized.
sql/handler.cc:
  Fixed that SHOW VARIABLES shows table type as disabled if it can't be initialized.
sql/mysqld.cc:
  Cleaned up error warning message.
parent 1663b50c
#! /bin/sh
gmake -k clean || true
/bin/rm -f */.deps/*.P config.cache
path=`dirname $0`
. "$path/SETUP.sh"
aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
extra_flags="$sparc_cflags -DHAVE_PURIFY -O2"
extra_configs="$sparc_configs --with-debug=full"
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
. "$path/FINISH.sh"
gmake -j 4
......@@ -31,7 +31,7 @@
#define INIT_SYM_TABLE 4096
#define INC_SYM_TABLE 4096
#define MAX_SYM_SIZE 128
#define DUMP_VERSION "1.1"
#define DUMP_VERSION "1.2"
#define HEX_INVALID (uchar)255
typedef ulong my_long_addr_t ; /* at some point, we need to fix configure
......@@ -72,14 +72,15 @@ static void usage()
printf("MySQL AB, by Sasha Pachev\n");
printf("This software comes with ABSOLUTELY NO WARRANTY\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\
-?, --help Display this help and exit.\n\
-h, --host=... Connect to host.\n\
-V, --version Output version information and exit.\n\
-n, --numeric-dump-file File containing the numeric stack dump.\n\
-s, --symbols-file=... File containting the output of\
nm --numeric-sort mysqld .\n\n");
-V, --version Output version information and exit.\n");
printf("\n\
The symbols-file should include the output from: 'nm --numeric-sort mysqld'.\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)
argc-=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();
exit(1);
}
return 0;
}
static void open_files()
{
fp_out = stdout;
......
......@@ -4,5 +4,7 @@ libsdir = ../libs
INCLUDES = -I../../include -I../include
CFLAGS= -g -O2 -DDEBUG_OFF
# Don't update the files from bitkeeper
%::SCCS/s.%
......@@ -29,6 +29,10 @@ subdirectory of 'mysql'. */
#include <global.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 VERSION
......
......@@ -318,11 +318,8 @@ os_file_create(
UT_NOT_USED(purpose);
if (create_mode == OS_FILE_CREATE) {
#ifndef S_IRWXU
file = open(name, create_flag);
#else
file = open(name, create_flag, S_IRWXU | S_IRWXG | S_IRWXO);
#endif
file = open(name, create_flag, S_IRUSR | S_IWUSR | S_IRGRP
| S_IWGRP | S_IROTH | S_IWOTH);
} else {
file = open(name, create_flag);
}
......@@ -905,19 +902,21 @@ os_aio_init(
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:
for this to work, the current thread must be the first created
in the database, so that all its children will inherit its
signal mask */
/* TODO: to work MySQL needs the SIGALARM signal; the following
will not work yet! */
sigemptyset(&sigset);
sigaddset(&sigset, SIGRTMIN + 1 + 0);
sigaddset(&sigset, SIGRTMIN + 1 + 1);
sigaddset(&sigset, SIGRTMIN + 1 + 2);
sigaddset(&sigset, SIGRTMIN + 1 + 3);
pthread_sigmask(SIG_BLOCK, &sigset, NULL);
pthread_sigmask(SIG_BLOCK, &sigset, NULL); */
#endif
}
......
......@@ -408,3 +408,12 @@ CREATE TABLE t1 (
INSERT INTO t1 VALUES (1, 1);
SELECT MIN(B),MAX(b) FROM t1 WHERE t1.a = 1;
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
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "mysys_priv.h"
#if !defined(HAVE_purify) || defined(QSORT_EXTRA_CMP_ARGUMENT)
/* Envoke the comparison function, returns either 0, < 0, or > 0. */
#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)
stack_node stack[STACK_SIZE]; /* Largest size needed for 32-bit int!!! */
stack_node *top = stack + 1;
char *pivot_buffer = (char *) my_alloca ((int) size);
#ifdef HAVE_purify
stack[0].lo=stack[0].hi=0;
#endif
while (STACK_NOT_EMPTY)
{
......@@ -255,4 +257,3 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp)
}
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
......@@ -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)
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
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_join (100): 1 wallclock secs ( 0.42 usr 0.32 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_distinct (800): 10 wallclock secs ( 1.49 usr 0.94 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_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): 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.47 usr 2.55 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.44 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
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)
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
Date of test: 2001-12-17 12:46:04
Benchmark DBD suite: 2.12
Date of test: 2001-03-26 1:22:18
Running tests on: Linux 2.2.16-SMP alpha
Arguments:
Comments: Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; cxx 6.3 + ccc 6.2.9
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)
alter-table: Total time: 357 wallclock secs ( 0.28 usr 0.20 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)
connect: Total time: 76 wallclock secs (33.82 usr 17.71 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)
insert: Total time: 1971 wallclock secs (441.85 usr 245.30 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)
wisconsin: Total time: 18 wallclock secs ( 3.78 usr 3.08 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: 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.49 usr 10.23 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: 147 wallclock secs ( 9.75 usr 5.02 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: 1346 wallclock secs (63.34 usr 28.50 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
Totals per operation:
Operation seconds usr sys cpu tests
alter_table_add 195.00 0.17 0.09 0.00 992
alter_table_drop 155.00 0.06 0.04 0.00 496
connect 14.00 7.94 2.31 0.00 10000
connect+select_1_row 17.00 8.45 3.13 0.00 10000
connect+select_simple 16.00 8.44 3.19 0.00 10000
count 63.00 0.04 0.01 0.00 100
count_distinct 103.00 0.72 0.23 0.00 2000
count_distinct_big 140.00 6.24 7.47 0.00 120
count_distinct_group 64.00 1.01 0.62 0.00 1000
count_distinct_group_on_key 49.00 0.49 0.15 0.00 1000
count_distinct_group_on_key_parts 64.00 1.03 0.60 0.00 1000
count_group_on_key_parts 44.00 0.96 0.58 0.00 1000
count_on_key 433.00 16.28 4.78 0.00 50100
create+drop 12.00 2.23 1.21 0.00 10000
create_MANY_tables 185.00 1.92 0.72 0.00 10000
create_index 3.00 0.00 0.00 0.00 8
create_key+drop 17.00 3.97 1.39 0.00 10000
alter_table_add 219.00 0.16 0.07 0.00 992
alter_table_drop 178.00 0.06 0.04 0.00 496
connect 14.00 7.60 2.34 0.00 10000
connect+select_1_row 17.00 8.25 3.12 0.00 10000
connect+select_simple 16.00 7.88 3.28 0.00 10000
count 55.00 0.04 0.01 0.00 100
count_distinct 48.00 0.40 0.10 0.00 1000
count_distinct_2 50.00 0.42 0.12 0.00 1000
count_distinct_big 137.00 6.05 7.22 0.00 120
count_distinct_group 69.00 0.98 0.61 0.00 1000
count_distinct_group_on_key 42.00 0.42 0.15 0.00 1000
count_distinct_group_on_key_parts 70.00 0.97 0.59 0.00 1000
count_distinct_key_prefix 38.00 0.39 0.12 0.00 1000
count_group_on_key_parts 42.00 0.94 0.56 0.00 1000
count_on_key 391.00 16.30 4.71 0.00 50100
create+drop 13.00 2.39 1.35 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
delete_all 13.00 0.00 0.00 0.00 12
delete_all_many_keys 51.00 0.02 0.01 0.00 1
delete_all 10.00 0.00 0.00 0.00 12
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_many_keys 51.00 0.02 0.01 0.00 128
delete_key 3.00 0.63 0.60 0.00 10000
delete_big_many_keys 51.00 0.03 0.01 0.00 128
delete_key 5.00 0.64 0.59 0.00 10000
drop_index 4.00 0.00 0.00 0.00 8
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
insert 127.00 20.22 21.45 0.00 350768
insert_duplicates 39.00 5.59 7.08 0.00 100000
insert_key 94.00 8.32 6.44 0.00 100000
insert_many_fields 15.00 0.36 0.15 0.00 2000
drop_table_when_MANY_tables 7.00 0.64 0.63 0.00 10000
insert 137.00 24.38 23.04 0.00 350768
insert_duplicates 40.00 5.91 6.68 0.00 100000
insert_key 97.00 8.84 6.70 0.00 100000
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_2_keys 7.00 0.00 0.00 0.00 1
min_max 29.00 0.02 0.00 0.00 60
min_max_on_key 181.00 26.65 8.21 0.00 85000
multiple_value_insert 8.00 1.89 0.05 0.00 100000
order_by_big 51.00 18.89 20.86 0.00 10
order_by_big_key 34.00 19.98 13.84 0.00 10
order_by_big_key2 32.00 18.45 13.58 0.00 10
order_by_big_key_desc 34.00 19.99 13.84 0.00 10
order_by_big_key_diff 46.00 18.41 20.32 0.00 10
order_by_big_key_prefix 32.00 18.52 13.53 0.00 10
order_by_key2_diff 5.00 1.80 1.17 0.00 500
order_by_key_prefix 2.00 1.08 0.62 0.00 500
order_by_range 5.00 1.08 0.61 0.00 500
outer_join 62.00 0.00 0.00 0.00 10
outer_join_found 56.00 0.00 0.00 0.00 10
outer_join_not_found 38.00 0.00 0.00 0.00 500
outer_join_on_key 43.00 0.00 0.00 0.00 10
select_1_row 2.00 0.29 0.81 0.00 10000
select_2_rows 3.00 0.32 0.93 0.00 10000
select_big 52.00 26.60 19.56 0.00 10080
select_column+column 3.00 0.30 0.72 0.00 10000
select_diff_key 212.00 0.25 0.07 0.00 500
select_distinct 10.00 1.49 0.94 0.00 800
select_group 55.00 1.49 0.66 0.00 2911
select_group_when_MANY_tables 6.00 0.89 0.87 0.00 10000
select_join 1.00 0.42 0.32 0.00 100
select_key 137.00 75.43 22.46 0.00 200000
select_key2 142.00 74.95 22.32 0.00 200000
select_key_prefix 144.00 76.14 21.41 0.00 200000
select_key_prefix_join 11.00 3.27 2.59 0.00 100
select_many_fields 25.00 6.93 9.32 0.00 2000
select_range 217.00 7.91 5.38 0.00 410
select_range_key2 19.00 6.55 2.30 0.00 25010
select_range_prefix 19.00 6.53 2.25 0.00 25010
select_simple 2.00 0.30 0.78 0.00 10000
select_simple_join 2.00 0.58 0.37 0.00 500
update_big 27.00 0.00 0.00 0.00 10
update_of_key 23.00 2.66 3.25 0.00 50000
update_of_key_big 21.00 0.03 0.03 0.00 501
update_of_primary_key_many_keys 22.00 0.02 0.01 0.00 256
update_with_key 124.00 18.23 19.54 0.00 300000
update_with_key_prefix 38.00 5.99 6.10 0.00 100000
wisc_benchmark 4.00 1.62 0.85 0.00 114
TOTALS 3969.00 561.61 313.29 0.00 2046247
insert_select_2_keys 6.00 0.00 0.00 0.00 1
min_max 22.00 0.02 0.00 0.00 60
min_max_on_key 164.00 26.11 7.96 0.00 85000
multiple_value_insert 7.00 1.91 0.06 0.00 100000
order_by_big 49.00 17.41 20.76 0.00 10
order_by_big_key 32.00 18.87 13.82 0.00 10
order_by_big_key2 31.00 17.40 13.49 0.00 10
order_by_big_key_desc 33.00 18.88 13.81 0.00 10
order_by_big_key_diff 45.00 17.45 20.78 0.00 10
order_by_big_key_prefix 31.00 17.49 13.48 0.00 10
order_by_key2_diff 4.00 1.66 1.15 0.00 500
order_by_key_prefix 3.00 0.93 0.63 0.00 500
order_by_range 4.00 0.95 0.63 0.00 500
outer_join 67.00 0.01 0.00 0.00 10
outer_join_found 59.00 0.01 0.00 0.00 10
outer_join_not_found 41.00 0.01 0.00 0.00 500
outer_join_on_key 45.00 0.00 0.00 0.00 10
select_1_row 3.00 0.30 0.80 0.00 10000
select_2_rows 2.00 0.32 0.95 0.00 10000
select_big 52.00 25.87 20.37 0.00 10080
select_column+column 3.00 0.31 0.79 0.00 10000
select_diff_key 146.00 0.24 0.05 0.00 500
select_distinct 10.00 1.53 0.98 0.00 800
select_group 51.00 1.49 0.67 0.00 2911
select_group_when_MANY_tables 6.00 0.95 0.90 0.00 10000
select_join 2.00 0.44 0.33 0.00 100
select_key 138.00 75.48 21.52 0.00 200000
select_key2 143.00 75.08 21.72 0.00 200000
select_key2_return_key 136.00 72.18 19.55 0.00 200000
select_key2_return_prim 140.00 73.57 20.03 0.00 200000
select_key_prefix 144.00 76.03 21.36 0.00 200000
select_key_prefix_join 11.00 3.47 2.55 0.00 100
select_key_return_key 135.00 73.99 20.17 0.00 200000
select_many_fields 25.00 7.16 10.10 0.00 2000
select_query_cache 82.00 3.31 1.00 0.00 10000
select_query_cache2 83.00 3.20 0.96 0.00 10000
select_range 225.00 7.61 5.12 0.00 410
select_range_key2 19.00 6.41 2.20 0.00 25010
select_range_prefix 20.00 6.33 2.25 0.00 25010
select_simple 1.00 0.33 0.77 0.00 10000
select_simple_join 1.00 0.58 0.37 0.00 500
update_big 25.00 0.00 0.00 0.00 10
update_of_key 26.00 2.53 2.87 0.00 50000
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 with 1000 columns and 1000 rows in 20 steps
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 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
All tests are done 1000 times with 1000 fields
Testing table with 1000 fields
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
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()
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()
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
All tests are done 10000 times
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
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
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
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
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
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 (+)
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)
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 with 10000 tables and 10000 loop count
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
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
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
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_key+drop (10000): 17 wallclock secs ( 3.97 usr 1.39 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)
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 ( 4.00 usr 1.40 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.
The tests are done with a table that has 100000 rows.
......@@ -8,80 +8,83 @@ Creating tables
Inserting 100000 rows in order
Inserting 100000 rows in reverse 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
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
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 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_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_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_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_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 (10:3000000): 51 wallclock secs (18.89 usr 20.86 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_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_key2_diff (500:250500): 5 wallclock secs ( 1.80 usr 1.17 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_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_key2 (5010:42084): 10 wallclock secs ( 2.87 usr 0.93 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 (200000): 137 wallclock secs (75.43 usr 22.46 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_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): 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): 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): 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): 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): 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): 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): 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): 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): 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): 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): 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): 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.03 usr 21.36 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_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
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_key2 (20000:43500): 9 wallclock secs ( 3.68 usr 1.37 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 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 (60): 29 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 (100): 63 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 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): 8 wallclock secs ( 3.60 usr 1.29 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.67 usr 1.41 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): 36 wallclock secs ( 0.03 usr 0.02 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): 55 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
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_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 (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): 19 wallclock secs ( 0.05 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
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_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 (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): 41 wallclock secs ( 6.81 usr 6.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
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
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 (10:10): 62 wallclock secs ( 0.00 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_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_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): 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): 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): 41 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
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_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)
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_all (12): 13 wallclock secs ( 0.00 usr 0.00 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): 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
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
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
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
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
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)
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
The test-table has 10000 rows and the test is done with 500 ranges.
Creating table
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
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_range (410:1057904): 217 wallclock secs ( 7.91 usr 5.38 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 count_on_key (50000): 393 wallclock secs (16.24 usr 4.77 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): 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): 155 wallclock secs (21.44 usr 6.55 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
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_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_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_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_big (100:1000000): 82 wallclock secs ( 6.23 usr 7.46 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_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 (1000:1000): 48 wallclock secs ( 0.40 usr 0.10 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_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_group_on_key_parts (1000:100000): 70 wallclock secs ( 0.97 usr 0.59 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
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
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)
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
#define GEM_OPTID_SPIN_RETRIES 1
extern bool gemini_skip;
extern SHOW_COMP_OPTION have_gemini;
extern long gemini_options;
extern long gemini_buffer_cache;
extern long gemini_io_threads;
......
......@@ -917,7 +917,7 @@ innobase_mysql_cmp(
not UNIV_SQL_NULL */
{
enum_field_types mysql_tp;
int ret;
int ret;
dbug_assert(a_length != UNIV_SQL_NULL);
dbug_assert(b_length != UNIV_SQL_NULL);
......@@ -928,9 +928,15 @@ innobase_mysql_cmp(
case FIELD_TYPE_STRING:
case FIELD_TYPE_VAR_STRING:
ret = my_sortncmp((const char*) a, a_length,
(const char*) b, b_length);
return ret;
ret = my_sortncmp((const char*) a, a_length,
(const char*) b, b_length);
if (ret < 0) {
return(-1);
} else if (ret > 0) {
return(1);
} else {
return(0);
}
default:
assert(0);
}
......
......@@ -148,6 +148,7 @@ class ha_innobase: public handler
};
extern bool innobase_skip;
extern SHOW_COMP_OPTION have_innobase;
extern uint innobase_init_flags, innobase_lock_type;
extern ulong innobase_cache_size;
extern char *innobase_home, *innobase_tmpdir, *innobase_logdir;
......
......@@ -159,7 +159,10 @@ int ha_init()
if (innobase_init())
return -1;
if (!innobase_skip) // If we couldn't use handler
{
opt_using_transactions=1;
have_innobase=SHOW_OPTION_DISABLED;
}
}
#endif
#ifdef HAVE_GEMINI_DB
......@@ -168,7 +171,10 @@ int ha_init()
if (gemini_init())
return -1;
if (!gemini_skip) // If we couldn't use handler
{
opt_using_transactions=1;
have_gemini=SHOW_OPTION_DISABLED;
}
}
#endif
return 0;
......
......@@ -1696,9 +1696,9 @@ int main(int argc, char **argv)
#ifdef EXTRA_DEBUG
case 1:
sql_print_error("\
Warning: You should set server-id to a non-0 value if log-bin is enabled.\n\
mysqld will log updates to the binary log, but will not accept connections\n\
from slaves.");
Warning: You have enabled the binary log, but you haven't set server-id:\n\
Updates will be logged to the binary log, but connections to slaves will\n\
not be accepted.");
break;
#endif
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