Thanks for the information Jerry.  Just to confirm, you mentioned "*if you
only need one key then you only need one key*".  My question was that this
particular query was using SELECT against a primary key and other fields
which are NOT indexed.  The EXPLAIN result was

table,type,possible_keys,key,key_len,ref,rows,Extra,
Products,const,PRIMARY,PRIMARY,8,const,1,,

So from this do I assume that if I'm always searching the PRIMARY KEY, that
I don't need to index the other fields ?

Cheers
Neil

On Thu, Jul 22, 2010 at 9:27 PM, Jerry Schwartz <je...@gii.co.jp> wrote:

> >-----Original Message-----
> >From: Tompkins Neil [mailto:neil.tompk...@googlemail.com]
> >Sent: Thursday, July 22, 2010 3:39 PM
> >To: Shawn Green (MySQL)
> >Cc: mysql@lists.mysql.com
> >Subject: Re: combined or single indexes?
> >
> >Thanks for your reply, and sorry for not verifying in the manual.  Another
> >couple of questions I have :
> >
> >If I run a EXPLAIN query and SELECT against a primary key and SELECT
> fields
> >which are not indexed, I assume that returned EXPLAIN statement as below,
> >means I don't need to index additional fields providing the PRIMARY KEY is
> >included in the SELECT statement ?
> >
> >table,type,possible_keys,key,key_len,ref,rows,Extra,
> >Products,const,PRIMARY,PRIMARY,8,const,1,,
> >
> [JS] Your posts will be more legible if you use "\G" instead of ";" at the
> end
> of an EXPLAIN.
>
> As for the indexing, if you only need one key then you only need one key.
> Just
> remember that when you test things with sample data, MySQL might make
> surprising decisions based upon the amount of data. You'll only really know
> what will happen if you have a substantial data set.
>
> >Also, if I want to add a index to an existing table containing 9000
> records,
> >how long should I expect this to take ?  Is it instant ?
> >
> [JS] Faster than you can type, I should think.
>
> Regards,
>
> Jerry Schwartz
> Global Information Incorporated
> 195 Farmington Ave.
> Farmington, CT 06032
>
> 860.674.8796 / FAX: 860.674.8341
> E-mail: je...@gii.co.jp
> Web site: www.the-infoshop.com
>
>
>
> >Cheers
> >Neil
> >
> >
> >On Thu, Jul 22, 2010 at 5:20 PM, Shawn Green (MySQL) <
> >shawn.l.gr...@oracle.com> wrote:
> >
> >> On 7/21/2010 1:02 PM, Tompkins Neil wrote:
> >>
> >>> Hi
> >>>
> >>> So Just running a basic query I get returned the following :
> >>>
> >>> table,type,possible_keys,key,key_len,ref,rows,Extra,
> >>> Products,ALL,,,,,9884,where used,
> >>>
> >>> Therefore, I assume "*ALL*" is the worst possible type and should look
> at
> >>> adding a an index to this particular field ?
> >>>
> >>>
> >> Why assume when the manual is right there to remove all doubt?
> >>
> >> http://dev.mysql.com/doc/refman/5.1/en/explain-output.html
> >> ####
> >> ALL
> >>
> >> A full table scan is done for each combination of rows from the previous
> >> tables. This is normally not good if the table is the first table not
> >> marked
> >> const, and usually very bad in all other cases. Normally, you can avoid
> ALL
> >> by adding indexes that enable row retrieval from the table based on
> >> constant
> >> values or column values from earlier tables.
> >> ####
> >>
> >>
> >>
> >>
> >> --
> >> Shawn Green
> >> MySQL Principle Technical Support Engineer
> >> Oracle USA, Inc.
> >> Office: Blountville, TN
> >>
>
>
>
>

Reply via email to