Hi!
>>>>> "Myk" == Myk Melez <[EMAIL PROTECTED]> writes: Myk> Steven Roussey wrote: >> Are the tables defined the same on both servers? >> Myk> Yes, the tables are defined exactly the same. >> Is the data the same? >> Myk> Just about. The data on the working server is a copy of the database on Myk> the broken server. For previous tests I used a several-weeks-old copy Myk> of the data, but for today's tests I re-copied the data over, so it Myk> represents almost the same exact data set. >> Is the query the same? Are both analyzed? >> Myk> Yes, I analyzed the tables on both databases before running the explain Myk> queries, and the explain queries are exactly the same. The only Myk> difference I can come up with is that the database on the working server Myk> was dumped from the broken server via mysqldump and then imported into Myk> the working server, while the database on the broken server was created Myk> via table creation statements years ago and has since been updated from Myk> the ISAM to the MyISAM table type and the database server from version Myk> 3.22.30 to 3.23.44. Myk> Is it possible that indexes were somehow corrupted in the process and Myk> need to be rebuilt from scratch? Does it make sense to dump the data on Myk> the broken server and re-import it into a different database on that server? You can check if the index are ok with CHECK TABLE; If this says the index is ok, they are not corrupted. You can optimize the index layout by using OPTIMIZE TABLE. But back to the original problem: mysql> EXPLAIN SELECT bug_id FROM bugs WHERE bug_status IN ('NEW', 'ASSIGNED', 'REOPENED'); +-------+------+---------------+------+---------+------+--------+------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+------+---------------+------+---------+------+--------+------------+ | bugs | ALL | bug_status | NULL | NULL | NULL | 139425 | where used | +-------+------+---------------+------+---------+------+--------+------------+ The above shows that MySQL could use the index but decides to not use this because it concludes that a table scan will be faster. To verify this can you send us the result for the following queries: SELECT count(*) FROM bugs WHERE bug_status IN ('NEW', 'ASSIGNED', 'REOPENED'); SELECT count(*) FROM bugs; If the first query returns more than 30 % of the second, then MySQL works as expected in this case. Regards, Monty -- For technical support contracts, goto https://order.mysql.com/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Mr. Michael Widenius <[EMAIL PROTECTED]> / /|_/ / // /\ \/ /_/ / /__ MySQL AB, CTO /_/ /_/\_, /___/\___\_\___/ Helsinki, Finland <___/ www.mysql.com --------------------------------------------------------------------- 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