ManuelW
29-12-2005, 12:57
Hiho, ich benutzt zZ für ein Projekt eine Abfrage, mit der ich aus anderen Tabellen per Left Join noch weitere Daten abrufe.
$result = mysql_query("SELECT a.num, a.adresse AS adresse_neu, a.bezeichnung AS bezeichnung_neu, a.text, DATE_FORMAT(a.zeit, '%Y%m%d%H%i%s') AS zeit, a.funktion, a.REC_TYP, a.done,
b.adresse, b.formatierung_id, b.bezeichnung,
d.id AS org_id, d.org_name, d.org, d.alarm_count, d.last_alarm
FROM dme a
LEFT JOIN ric_zvei b ON b.adresse = a.adresse
LEFT JOIN organisation d ON d.id = b.org_id
$show_filter
ORDER BY a.zeit DESC") or die (mysql_error());
while($row = mysql_fetch_array($result))
{
Nun die Frage, gibt es da elegantere Lösungen ?
Die Datenbank enthält mittlerweile um 200.000 Datensätze und die Abfragen dauern
schon etwas. Ich würd das ganze gern mal optimieren, habe aber keinen richtigen Ansatz dazu.
Auch glaube ich das die Abfrage nach Datum nicht unbedingt optimal ist, das doch
theoretisch alle Datensätze nach Datum geprüft werden müssen, oder sehe ich das falsch ?
Hoffe auf ein paar Tips, danke Manu :)
$result = mysql_query("SELECT a.num, a.adresse AS adresse_neu, a.bezeichnung AS bezeichnung_neu, a.text, DATE_FORMAT(a.zeit, '%Y%m%d%H%i%s') AS zeit, a.funktion, a.REC_TYP, a.done,
b.adresse, b.formatierung_id, b.bezeichnung,
d.id AS org_id, d.org_name, d.org, d.alarm_count, d.last_alarm
FROM dme a
LEFT JOIN ric_zvei b ON b.adresse = a.adresse
LEFT JOIN organisation d ON d.id = b.org_id
$show_filter
ORDER BY a.zeit DESC") or die (mysql_error());
while($row = mysql_fetch_array($result))
{
Nun die Frage, gibt es da elegantere Lösungen ?
Die Datenbank enthält mittlerweile um 200.000 Datensätze und die Abfragen dauern
schon etwas. Ich würd das ganze gern mal optimieren, habe aber keinen richtigen Ansatz dazu.
Auch glaube ich das die Abfrage nach Datum nicht unbedingt optimal ist, das doch
theoretisch alle Datensätze nach Datum geprüft werden müssen, oder sehe ich das falsch ?
Hoffe auf ein paar Tips, danke Manu :)