hkl: FK Indizes

Beitrag lesen

Hallo Hamstar!

Aber dennoch, noch einmal die Frage: Macht ein Index auf ein Datenfeld Sinn, wenn dieses ein Fremdschlüssel ist und auf einen Primärschlüssel (einer zweiten Tabelle) verweist, und wenn über dieses ganz primär nur GeJOINt (nicht geWHEREt ;) wird? Ist mir irgendwie völlig unklar, wie das den SELECT (inl. JOIN) optimieren soll.

Bei 'nem einfachen JOIN ( "ueber alles" ) bringt's wahrscheinlich nichts, aber bei

SELECT u.foo, k.bar
       FROM usr u
            JOIN kunde k ON u.id = k.usr_id_kdzg
-- Jetzt kommt's :-)
                 WHERE u.foo = 'schnurrdiburr';

Wenn auf u.foo ein Index liegt zeigt mir EXPLAIN dass zumindest MySQL von k uber den Index laeuft und erst dann nach k joined.

Ohne den Index macht "er" es anscheinend umgekehrt, was mir suboptimal erscheint - indem WHERE ist ja gar kein Feld von k enthalten.

Gruss

Holger

P.S.: Schreibst Du das FROM mit in die erste Zeile ?