Maybe that was a bad example.  If the query was name = 'Red' what index should 
I create ?

Should I create a index of all columns used in each query or have a index on 
individual column ?

On 6 Oct 2011, at 17:28, Michael Dykman <mdyk...@gmail.com> wrote:

> For the first query, the obvious index on score will give you optimal results.
> 
> The second query is founded on this phrase: "Like '%Red%' " and no index will 
> help you there.  This is an anti-pattern, I am afraid.  The only way your 
> database can satisfy that expression is to test each and every record in the 
> that database (the test itself being expensive as infix finding is 
> iterative).  Perhaps you should consider this approach instead:
> http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html
> 
> On Thu, Oct 6, 2011 at 10:59 AM, Tompkins Neil <neil.tompk...@googlemail.com> 
> wrote:
> Hi,
> 
> Can anyone help and offer some advice with regards MySQL indexes.  Basically
> we have a number of different tables all of which have the obviously primary
> keys.  We then have some queries using JOIN statements that run slowly than
> we wanted.  How many indexes are recommended per table ?  For example should
> I have a index on all fields that will be used in a WHERE statement ?
>  Should the indexes be created with multiple fields ?  A example  of two
> basic queries
> 
> SELECT auto_id, name, score
> FROM test_table
> WHERE score > 10
> ORDER BY score DESC
> 
> 
> SELECT auto_id, name, score
> FROM test_table
> WHERE score > 10
> AND name Like '%Red%'
> ORDER BY score DESC
> 
> How many indexes should be created for these two queries ?
> 
> Thanks,
> Neil
> 
> 
> 
> -- 
>  - michael dykman
>  - mdyk...@gmail.com
> 
>  May the Source be with you.

Reply via email to