Moje proste zapytanie MySql nie używa indeksu

Mam bardzo proste zapytanie:

<code>  SELECT   comments.*
  FROM comments 
  WHERE comments.imageid=46
</code>

A to jest mój stół:

<code>CREATE TABLE IF NOT EXISTS `comments` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `imageid` int(10) unsigned NOT NULL DEFAULT '0',
  `uid` bigint(20) unsigned NOT NULL DEFAULT '0',
  `content` text CHARACTER SET utf8,
  `adate` datetime DEFAULT NULL,
  `ip` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ids` (`imageid`) USING BTREE,
  KEY `dt` (`adate`) USING BTREE
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
</code>

Ale MySql nie może używać indeksu dla tego prostego zapytania. oto wynik wyjaśnienia:

<code>id  select_type     table   type    possible_keys   key     key_len     ref     rows    filtered    Extra
1   SIMPLE  comments    ALL     ids     NULL    NULL    NULL    4   75.00   Using where
</code>

podczas gdy zmieniam zapytanie na to, Mysql może używać indeksu. Czemu? :

<code>  SELECT   comments.id
  FROM comments 
  WHERE comments.imageid=46
</code>

oto wyjaśnienie:

<code>id  select_type     table   type    possible_keys   key     key_len     ref     rows    filtered    Extra
1   SIMPLE  comments    ref     ids     ids     4   const   4   100.00  Using index
</code>

questionAnswers(3)

yourAnswerToTheQuestion