It seems like myisamchk -a is hosing some statistic in a MyISAM table that gets re-created and stored permanently as once a query is run that uses that index, it always runs well until myisamchk -a is run again even between restarts of mysqld. It also seems that key_buffer_size has no effect on the results.
Can someone explain this to me? There are a a bunch of tables merged into three main tables. The query does a two column join between the tables, e.g.: a.1=b.1 AND a.2=b.2 AND b.1=c.1 AND b.3=c.3 --Bill [root@host /usr/local/mysql-4.0/var]# ../bin/mysqladmin -uroot -p version ../bin/mysqladmin Ver 8.22 Distrib 4.0.0-alpha, for pc-linux-gnu on i686 Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 4.0.0-alpha-log Protocol version 10 Connection Localhost via UNIX socket UNIX socket /tmp/mysql-4.0.sock Uptime: 7 min 2 sec Threads: 3 Questions: 103 Slow queries: 0 Opens: 12 Flush tables: 46 Open tables: 3 Queries per second avg: 0.244 [root@host /usr/local/mysql-4.0/var]# uname -a Linux host.tqs.com 2.2.19 #6 SMP Wed Jul 11 10:55:03 PDT 2001 i686 unknown [root@host /usr/local/mysql-4.0/var]# vmstat procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 2 1 0 4 2612 40752 1450688 0 0 4 3 3 6 10 2 6 [root@host /usr/local/mysql-4.0/var]# ldd ../libexec/mysqld librt.so.1 => /lib/librt.so.1 (0x2aac8000) libdl.so.2 => /lib/libdl.so.2 (0x2aacc000) libpthread.so.0 => /lib/libpthread.so.0 (0x2aad0000) libz.so.1 => /usr/lib/libz.so.1 (0x2aae3000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x2aaf3000) libnsl.so.1 => /lib/libnsl.so.1 (0x2ab20000) libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2 (0x2ab36000) libm.so.6 => /lib/libm.so.6 (0x2ab78000) libc.so.6 => /lib/libc.so.6 (0x2ab95000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaab000) [root@host /usr/local/mysql-4.0/var]# myisamchk -a (on all tables) set-variable = key_buffer=32M Time to start getting results: 127 seconds. Total Time: 146 seconds (18251 rows, 125 rows/sec overall) Run the query again: Time to start getting results: 11 seconds. Total Time: 30 seconds (18251 rows, 608 rows/sec) shutdown mysql set-variable = key_buffer=1M start mysql myisamchk -a (on all tables) Time to start getting results: 121 seconds. Total Time: 141 seconds (18251 rows, 129 rows/sec) Second Run: Run the query again: Time to start getting results: 10 seconds. Total Time: 29 seconds (18251 rows, 629 rows/sec) Shutdown and restart MySQL. Note: key_buffer still at 1M Time to start getting results: 12 seconds. Total Time: 31 seconds (18251 rows, 588 rows/sec) Shutdown MySQL Set key buffer size to 0 start mysql Time to start getting results: 10 seconds. Total Time: 29 seconds (18251 rows, 629 rows/sec) myisamchk -a Time to start getting results: 145 seconds. Total Time: 164 seconds (18251 rows, 111 rows/sec) -- Bill Adams TriQuint Semiconductor --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php