Isn't the choice in the the "type" col of Explain a "full index scan"
rather than a full table scan ?My understanding was that the "ALL" stands
for "full table scan ".
Thanks,
Mariella
On Tue, Jul 29, 2008 at 11:03 AM, Mary Bahrami <[EMAIL PROTECTED]>wrote:
> The optimizer made the correct choice when it did a full table scan
> where there were few rows...I wouldn't want to override the optimizer in
> this case.
>
> Check that you updated statistics between these two queries
> (information_schema.statistics.cardinality).
>
> -Original Message-
> From: MySQLForum MySQLForum [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 29, 2008 6:35 AM
> To: mysql@lists.mysql.com
> Subject: log-queries-not-using-indexes and "Using index" in the Extra
> col of Explain
>
> Hi All,
>
> I have been using mysql 5.1.26-rc on Linux and configured to log queries
> that do not use index through
> log-queries-not-using-indexes
>
> I would like to ask two questions, please:
>
> 1)
> I have noticed that in some cases some queries get logged because a scan
> of
> the index on a field is executed.
>
> Does the log-queries-not-using-indexes include also "index scans" ?
>
> E.G.
>
> EXPLAIN SELECT DISTINCT field1 FROM table1;
>
> ++-+-+---+---+--+---
> --+--+--+-+
> | id | select_type | table | type | possible_keys | key | key_len | ref
> |
> rows | Extra |
> ++-+-+---+---+--+---
> --+--+--+-+
> | 1 | SIMPLE | table1 | index | NULL | (field1,field2,field3) | 107 |
> NULL |
> 2 | Using index |
> ++-+-+---+---+--+---
> --+--+--+-+
>
> In this case the table has only two rows so I suppose the index scan is
> executed because the set rows is small.
>
>
> 2)
>
> In other cases with the same number of rows or a few more rows (e.g. 8
> rows)
> doing the same query triggers the "RANGE" type in the type column of
> explain, the key_len size decreases and "Using index for group-by" in
> the
> Extra col.
>
> ++-++---+---+--+
> -+--+--+--+
> | id | select_type | table | type | possible_keys | key | key_len | ref
> |
> rows | Extra |
> ++-++---+---+--+
> -+--+--+--+
> | 1 | SIMPLE | table1 | range | NULL | (field1,field2,field3) | 98 |
> NULL |
> 2 | Using index for group-by |
> ++-++---+---+--+
> -+--+--+--+
>
>
> In both cases the rows are all identical, they only differ on the value
> of
> the primary key (which is not one of the field1,field2, and field4
> fields)
> Is there a way to trigger this behavior all the times all the times
> (forcing
> the index does not help because the index is chosen in any case).
>
> Thanks in advance for your help
>
>
> mf
>