Query does not use index (according to EXPLAIN SELECT) Can anyone give me an indication, why this query does not use the Key on the table 'gtg'):

+---+--------+------------------+-------+-----------------+---------+------+------+----+--------+---------------------------------+
| 1 | SIMPLE |      gtg |   ALL |         PRIMARY | NULL    | NULL | NULL |  2 | 100.00 | Using temporary; Using filesort |
| 1 | SIMPLE | hsv2 | range | PRIMARY,gtg| PRIMARY | 4    | NULL | 22 | 100.00 |  Using where; Using join buffer |
+---+--------+------------------+-------+-----------------+---------+------+------+----+--------+---------------------------------+


this is the query:

EXPLAIN
SELECT gtg.name, 
       sum(h)
FROM hsv2
JOIN gtg ON gtg.id=hsv2.gtg
WHERE hsv2.id&lt;1000
GROUP BY gtg.name
ORDER BY gtg.name


table definition (summary):

CREATE TABLE IF NOT EXISTS `hsv2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `gtg` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`id`,`pid`),
  KEY `pid` (`pid`),
  KEY `gtg` (`gtg`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8
 PARTITION BY RANGE (pid)
(PARTITION hs_v2_0 VALUES LESS THAN (10000) ENGINE = InnoDB,
 PARTITION hs_v2_1 VALUES LESS THAN (20000) ENGINE = InnoDB,
 PARTITION hs_v2_39 VALUES LESS THAN (3800000) ENGINE = InnoDB,
 PARTITION hs_v2_40 VALUES LESS THAN (4000000) ENGINE = InnoDB)


gtg.id is the primary key.

any clues, I am lost. I thought the partitioning might have to do something with it, but but the gtg table is not partitioned, so....

mysql 5.5 on a standard debian 7
Antonis answer was correct. I tested it by hardcoding some JOINs (for 2 rows) and it disappeared from the slow-query log.