"Alexander Newald" <[EMAIL PROTECTED]> wrote on 23/09/2004 15:57:51:

> Hello,
> 
> I have a db with abount 80000 lines in it. I now like to count the lines 

> where the first char of the id is "d":
> 
> mysql> select count(id) from test where left(id,1) = "d";
> +---------------+
> | count(id)     |
> +---------------+
> |             0 |
> +---------------+
> 1 row in set (1.83 sec)
> 
> mysql> explain select count(id) from test where left(id,1) = "d";
> +---------+-------+---------------+--------+---------+------+-------
> +-------------------------+
> | table   | type  | possible_keys | key    | key_len | ref  | rows  | 
Extra 
> |
> +---------+-------+---------------+--------+---------+------+-------
> +-------------------------+
> | test    | index | NULL          | id     |     256 | NULL | 80352 | 
where 
> used; Using index |
> +---------+-------+---------------+--------+---------+------+-------
> +-------------------------+
> 1 row in set (0.00 sec)
> 
> mysql> select count(*) from test;
> +----------+
> | count(*) |
> +----------+
> |    80352 |
> +----------+
> 1 row in set (0.00 sec)
> 
> What can I do to get a better result for my query?

Does 
        select count(id) from test where id like "d%" ;
work any better? I would expect it to make better use of the index.

        Alec



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

Reply via email to