Vinzenz Mai: JOIN und WHERE bei vier Tabellen

Beitrag lesen

Hallo,

Jau, einfach bei der SQL-Abfrage EXPLAIN voranstellen. Nur was kommt dabei raus?

Beim WHERE:

id  select_type  table  type  possible_keys  key  key_len  ref  rows  Extra
1 SIMPLE positionen ALL NULL NULL NULL NULL 5
1 SIMPLE produkte eq_ref PRIMARY PRIMARY 4 test.positionen.ProduktID 1 Using index
1 SIMPLE rechnungen eq_ref PRIMARY PRIMARY 4 test.positionen.RechnungsID 1
1 SIMPLE kunden eq_ref PRIMARY PRIMARY 4 test.rechnungen.Kundennummer 1 Using index

Beim JOIN:

id  select_type  table  type  possible_keys  key  key_len  ref  rows  Extra
1 SIMPLE positionen ALL NULL NULL NULL NULL 5
1 SIMPLE produkte eq_ref PRIMARY PRIMARY 4 test.positionen.ProduktID 1 Using index
1 SIMPLE rechnungen eq_ref PRIMARY PRIMARY 4 test.positionen.RechnungsID 1
1 SIMPLE kunden eq_ref PRIMARY PRIMARY 4 test.rechnungen.Kundennummer 1 Using index

mmh...; kein Unterschied, oder?

welch' ein Wunder. Erstens sollte sich "explizit" oder "implizit" nicht in der Performance niederschlagen (bei antiken MySQL-Versionen soll es mal so gewesen sein) und zweitens sollte ein Query-Optimizer so 'ne einfache Abfrage schon optimal hinkriegen können.

Freundliche Grüße

Vinzenz