TVE
Erfahrenes Mitglied
Guten Tag die Damen und Herren
Ich habe bei meinem jetztigen Webprojekt einen MySQL Query, welcher z.B. so aussehen könnte:
Das ist auch alles schön und gut, nur dass die ganze Abfrage bei 10'000 Einträgen in der Tabelle 'problem' etwa die Zeit von 4 Sekunden benötigt um das Ergebnis auszuspucken. (das Ganze auf einem Single-Prozessor Webserver, bei Dual/Multi-Prozessor hab ich nicht getestet)
Gibt es eine Möglichkeit den Query besser zu schreiben, zu optimieren? Ist eventuell Indexierung ein Lösungsansatz für eine bessere Performance?
Als kleine Marke noch: Wenn ich ein stinknormales Query nur auf die Tabelle 'problem' durchführe braucht es bloss 2ms Zeit.
Zusätzliche Info:
MySQL 4.0.18
PHP 4.3.4
Apache 1.3.29
Ich danke für alle Ideen.
Ich habe bei meinem jetztigen Webprojekt einen MySQL Query, welcher z.B. so aussehen könnte:
Code:
SELECT ka_name, pr_titel, pr_id, ka_id, pr_oefplz, pr_oefort, we_betrag, pr_maxang, COUNT( bi_id ) AS anzahl
FROM problem
LEFT JOIN bieter ON pr_id = bi_pridfs, kategorie, person, ort, bezirk, region, land, wert
WHERE ( ka_id LIKE '%' ) AND we_id = pr_weidfs AND ka_id = pr_kaidfs AND pe_id = pr_peidfs AND la_id = re_laidfs AND re_id = be_reidfs AND be_id = or_beidfs AND or_id = pe_oridfs AND la_id = '186' AND re_id
LIKE '%' AND be_id
LIKE '%' AND pr_aktiv = '1' AND (
(
bi_aktiv = '1' AND bi_status = '1'
) OR (
bi_aktiv IS NULL
) OR (
bi_aktiv = '1' AND (
bi_status = '2' OR bi_status = '3'
)
)
) AND (
ka_name
LIKE '%schiff%' OR pr_titel
LIKE '%schiff%' OR pr_beschreibung
LIKE '%schiff%'
)
GROUP BY pr_id
HAVING anzahl < pr_maxang
ORDER BY ka_name, pr_titel ASC
Das ist auch alles schön und gut, nur dass die ganze Abfrage bei 10'000 Einträgen in der Tabelle 'problem' etwa die Zeit von 4 Sekunden benötigt um das Ergebnis auszuspucken. (das Ganze auf einem Single-Prozessor Webserver, bei Dual/Multi-Prozessor hab ich nicht getestet)
Gibt es eine Möglichkeit den Query besser zu schreiben, zu optimieren? Ist eventuell Indexierung ein Lösungsansatz für eine bessere Performance?
Als kleine Marke noch: Wenn ich ein stinknormales Query nur auf die Tabelle 'problem' durchführe braucht es bloss 2ms Zeit.
Zusätzliche Info:
MySQL 4.0.18
PHP 4.3.4
Apache 1.3.29
Ich danke für alle Ideen.