Mailinglisten-Archive |
>Hi, >hat jemand von Euch ne Idee, wie sich folgende abfrage optimieren laesst ? >Im Prinzip dient sie dazu bestimmte daten eines artikels anzuzeigen und >zu visuallisieren, ob es in anderen tabellen (bild oder profil) noch min >einen ref. Datensatz >gibt. >Im moment benoetigt sie ca. 2sec :| >-- >SELECT a.artnr_neu, a.wbez, h.name, a.okat, a.ukat, a.vk, >IF ( >a.kurz != '', 1, 0 >) AS iskurz, [...] Hi Nico, Zunächst solltest du wenn möglich Ablaufsteuerungen in SQL vermeiden, denn diese bremsen die Query ungemein. Da die Werte iskurz, islang, isimg und isprof ja für die Auswertung der Query völlig belanglos sind lass diese doch einfach weg (ich meine nicht die Werte sondern die IF - Konstrukte)... Ob du nun in deiner Middleware nach '' oder 0 abfragst ist doch absolut egal, oder? Gleiches gilt für NULL... Jetzt noch was zu referenzielle Integrität: Warum machst du das nicht so: SELECT artdata. * FROM artdata LEFT JOIN img_to_art ON artdata.artnr_neu = img_to_art.artnr WHERE img_to_art.artnr IS NULL AND artdata.artnr_neu IS NOT NULL Hier bekommst du alle Artikel ohne Bild (geht ratzfatz ;-) )... Manchmal kann aus Performancegründen auch nützlich sein zwei Abfragen zu formulieren... Aber es kommt ja immer darauf an was du dann mit dem Ergebnis machen willst... Probiers mal ohne die IF's, müsste meines Erachtens einiges bringen... MfG Wolfgang -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive