dedlfix: mysql, Abfrage, wenn var grösser 0, dann wert aus anderer Table

Beitrag lesen

Tach!

Tom, ich hatte es wirklich schon mal, dass subselects (wenn nur ein Wert rausgesucht werden soll) schneller sind als JOIN. Ich habe allerdings bis heute (aus Zeitgründen) noch nicht herausgefunden, warum das so ist.

Was der Optimizer unter der Haube tun kann und das noch in Abhängigkeit der anfallenden Datenmenge, spielt auch noch eine große Rolle, so dass man keine pauschalen Aussagen treffen kann, was nun schneller ist. Aber mal so prinzipiell gesehen muss bei einem Join zuerst die große Datenmenge erzeugt werden, dann kommt die Filterung der Where-Klausel dran. Wenn die bereits gefilterten Daten der einen Tabelle eine geringe Menge ergeben, sind dann wenige Subselects - noch dazu wenn sie über einen Index agehandelt werden können - schneller zu ermitteln. Aber wie gesagt, das kann je nach Datenmenge auch sorum und sorum enden.

dedlfix.