Kirschtomate
New member
Hey!
Ich schreibe gerade an einem etwas umfangreicheren HTML (bzw. PHP) Suchformular. In meiner Datenbank werden viele Produkteigenschaften abgebildet, wodurch in meiner SELECT Abfrage etwa 20 Tabellen "gejoint" werden müssen. Nun gibt es wohl zwei Möglichkeiten, wie meine SELECT Abfrage aussehen kann:
a.)
$abfrage = "select tabelle_1.*, tabelle_2.*
from
tabelle_1
join tabelle_2
on tabelle_1.id = tabelle_2.id
where (tabelle_1.wert = '$wert_1' or '' = '$wert_1') -- Das Feld wert_1 muss nicht ausgefüllt werden
and (tabelle_2.wert = '$wert_2' or '' = '$wert_2') -- Das Feld wert_2 muss nicht ausgefüllt werden
group by tablle_1.id";
b.)
if ($wert_2 !== '') {
$wert_2 = ' and tabelle_2.wert = ' . $wert_2 . ' '; // Das Feld wert_2 wurde ausgefüllt
}
$abfrage = "select tabelle_1.*, tabelle_2.*
from
tabelle_1
join tabelle_2
on tabelle_1.id = tabelle_2.id
where (tabelle_1.wert = '$wert_1' or '' = '$wert_1')"
. $wert_2 .
"group by tablle_1.id";
Sind durch Variante B nennenswerte Geschwindigkeitsvorteile zu erwarten? In der Datenbank sollen sich mittelfristig 1000 bis 2000 Datensätze befinden. Die maximale Anzahl der Datensätze liegt geschätzt bei etwa 5000.
Schöne Grüße, KT
Ich schreibe gerade an einem etwas umfangreicheren HTML (bzw. PHP) Suchformular. In meiner Datenbank werden viele Produkteigenschaften abgebildet, wodurch in meiner SELECT Abfrage etwa 20 Tabellen "gejoint" werden müssen. Nun gibt es wohl zwei Möglichkeiten, wie meine SELECT Abfrage aussehen kann:
a.)
$abfrage = "select tabelle_1.*, tabelle_2.*
from
tabelle_1
join tabelle_2
on tabelle_1.id = tabelle_2.id
where (tabelle_1.wert = '$wert_1' or '' = '$wert_1') -- Das Feld wert_1 muss nicht ausgefüllt werden
and (tabelle_2.wert = '$wert_2' or '' = '$wert_2') -- Das Feld wert_2 muss nicht ausgefüllt werden
group by tablle_1.id";
b.)
if ($wert_2 !== '') {
$wert_2 = ' and tabelle_2.wert = ' . $wert_2 . ' '; // Das Feld wert_2 wurde ausgefüllt
}
$abfrage = "select tabelle_1.*, tabelle_2.*
from
tabelle_1
join tabelle_2
on tabelle_1.id = tabelle_2.id
where (tabelle_1.wert = '$wert_1' or '' = '$wert_1')"
. $wert_2 .
"group by tablle_1.id";
Sind durch Variante B nennenswerte Geschwindigkeitsvorteile zu erwarten? In der Datenbank sollen sich mittelfristig 1000 bis 2000 Datensätze befinden. Die maximale Anzahl der Datensätze liegt geschätzt bei etwa 5000.
Schöne Grüße, KT
Zuletzt bearbeitet: