Analyzing a table requires looking at every record in the table.  If the
table you are dealing with is a large one then there is a good chance that
after analyzing the table your disk cache will not contain the records that
you are trying to grab.  Once you run the query it will almost certainly
contain those records.  You could test this theory by rebooting your machine
(if that is an option) and seeing if it takes the longer amount of time for
the first query. 

Or I could be completely off base.  It wouldn't be the first time.  :-)

Jon Gardiner.

> -----Original Message-----
> From: Bill Adams [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, November 13, 2001 2:47 PM
> To: Mysql List
> Subject: myisamchk -a + indexes + hidden...?
> 
> 
> 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
> 

---------------------------------------------------------------------
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

Reply via email to