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