On Tue, Aug 26, 2003 at 07:38:04PM -0600, Twibell, Cory L wrote:
> All,
> 
> I have a query that is inner joined with another table based on
> country codes Select distinct Name.* from Name inner join Location
> on Location.key = Name.key and Location.cc in ('<list of countries
> here>');
> 
> The problem is when I have more than 2 country codes, the query
> takes forever...  When I show processlist, it says converting HEAP
> to MyISAM ( this takes over an hour )...  I've tried bumping up
> max_heap_table_size to 128M and tmp_table_size to 128M, but that
> only seems to delay the converting HEAP to MyISAM message....
> 
> Name contains about 3 million records and Location contains about 1.5 million 
> records.

The table is a HEAP table?

I don't think the optimizer knows how to make an IN(...) query in a
HEAP table fast.  Have you tried this with a MyISAM table?  It should
be pretty fast, assuming you're pulling back less than 1/4th of the
rows with that query.

Can you show us the EXPLAIN output from the query?

Jeremy
-- 
Jeremy D. Zawodny     |  Perl, Web, MySQL, Linux Magazine, Yahoo!
<[EMAIL PROTECTED]>  |  http://jeremy.zawodny.com/

MySQL 4.0.13: up 25 days, processed 1,141,718,690 queries (517/sec. avg)

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to