Jonas: MySQL: Join und Group By kein Index möglich

Hallo,

ich habe folgendes SQL Statement:
SELECT
count(*) count,a.plz,a.sortort,b.lk_name,b.bland,c.city
FROM adressen a,plz b,kfz_lk c,adressen_kategorien d
WHERE a.plz='69412' AND b.plz=a.plz AND c.ortname=b.lk_name AND d.kategorie_id='1' AND d.eintrag_id=a.id GROUP BY lk_name

EXPLAIN sieht wie folgt aus:
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: b
         type: ref
possible_keys: plz
          key: plz
      key_len: 17
          ref: const
         rows: 1
        Extra: Using where; Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: c
         type: ref
possible_keys: ortname
          key: ortname
      key_len: 767
          ref: adressen.b.lk_name
         rows: 1
        Extra: Using where
*************************** 3. row ***************************
           id: 1
  select_type: SIMPLE
        table: a
         type: ref
possible_keys: PRIMARY,id,plz
          key: plz
      key_len: 17
          ref: const
         rows: 272
        Extra: Using where
*************************** 4. row ***************************
           id: 1
  select_type: SIMPLE
        table: d
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 8
          ref: adressen.a.id,const
         rows: 1
        Extra: Using where; Using index
4 rows in set (0.06 sec)

Wie man sieht behilft sich MySQL row 1 leider mit Using temporary und Using filesort, was natürlich unperformant ist.
Lasse ich aber das Group By weg (dazu muss auch leider das count(*) weg) wird keine tempdatei und kein filesort verwendet:
mysql> EXPLAIN SELECT a.plz,a.sortort,b.lk_name,b.bland,c.city FROM adressen a,p
lz b,kfz_lk c,adressen_kategorien d WHERE a.plz='69412' AND b.plz=a.plz AND c.ortn
ame=b.lk_name AND d.kategorie_id='1' AND d.eintrag_id=a.id\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: b
         type: ref
possible_keys: plz
          key: plz
      key_len: 17
          ref: const
         rows: 1
        Extra: Using where
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: c
         type: ref
possible_keys: ortname
          key: ortname
      key_len: 767
          ref: adressen.b.lk_name
         rows: 1
        Extra: Using where
*************************** 3. row ***************************
           id: 1
  select_type: SIMPLE
        table: a
         type: ref
possible_keys: PRIMARY,id,plz
          key: plz
      key_len: 17
          ref: const
         rows: 272
        Extra: Using where
*************************** 4. row ***************************
           id: 1
  select_type: SIMPLE
        table: d
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 8
          ref: adressen.a.id,const
         rows: 1
        Extra: Using where; Using index
4 rows in set (0.06 sec)

Folglich ist wohl der Group By Parameter, der ja durch das count(*) nötig wird, die Bremse.
Weiß jdm. eine Möglichkeit diesen umzugestalten?