When they are searching sometiems they do not search for Location.. When
that's the case I leave the location string out, if they do not search for
Category, I leave the Category string out, but when they do.. That's the
query I get.. There has got to be a way of making this faster.. It seems
like MySQL would be able to handle this query without a hitch.. So there has
to be something wrong with the query itself...

Rick

A wise women once said: " No one can help everybody, but everybody can help
somebody." - Unknown
> 
> I reformatted it to make it more readable.  My guess is all those LEFT
> JOINs are killing you.  Do you really have Jobs with no locations or
> categories, and if you do, do you really care about them when you have
> Category and Joblocation fields in your WHERE clause?  Mysql can't
> reorder the tables to look at Category and JobsLocation first when
> they're constrained with LEFT JOIN.
> 
> -- 
> Dan Nelson
> [EMAIL PROTECTED]
> 
> From: Dan Nelson <[EMAIL PROTECTED]>
> Date: Wed, 31 Jul 2002 13:42:41 -0500
> To: Richard Baskett <[EMAIL PROTECTED]>
> Cc: Tod Harter <[EMAIL PROTECTED]>, MySQL
> <[EMAIL PROTECTED]>
> Subject: Re: Speed issues...
> 
> In the last episode (Jul 31), Richard Baskett said:
>>>> SELECT DISTINCT Location.SortID AS Loc, LocName, JobTitle AS Job, Company
>>>> AS Comp, Jobs.JobID, Employers.EmpID
>>>> FROM Employers
>>>> LEFT JOIN Jobs USING (EmpID)
>>>> LEFT JOIN JobsLocation USING (JobID)
>>>> LEFT JOIN Location USING (LocID)
>>>> LEFT JOIN JobsCategory ON Jobs.JobID=JobsCategory.JobID
>>>> LEFT JOIN Category USING (CatID)
>>>> WHERE Valid = '1' AND JobTitle IS NOT NULL
>>>> AND (LocName LIKE 'US-Alabama-Birmingham%')
>>>> AND Category.CatID IN ('2')
>>>> ORDER BY Loc ASC LIMIT 0,50
>> 
>> Ok here is the EXPLAIN query:
>> 
>> table         type    possible_keys  key      key_len  ref
>> rows   Extra
>> 
>> Employers     ALL     NULL           NULL     NULL     NULL
>> 46175  where used; Using temporary; Using filesort
>> Jobs          ref     EmpID          EmpID    4        Employers.EmpID     3
>> where used
>> JobsLocation  ref     PRIMARY        PRIMARY  4        Jobs.JobID
>> 581    Using index
>> Location      eq_ref  LocID          LocID    2        JobsLocation.LocID  1
>> where used
>> JobsCategory  ref     PRIMARY        PRIMARY  4        Jobs.JobID
>> 581    Using index; Distinct
>> Category      eq_ref  PRIMARY,CatID  PRIMARY  1        JobsCategory.CatID  1
>> where used; Using index; Distinct
>> 
>> Hopefully you can make out what it says in all of that jumble! :) 


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