phpbar.de logo

Mailinglisten-Archive

query optimieren

query optimieren

Wolfgang Hauck wbh at euta.net
Mon Mar 31 14:33:08 CEST 2003


>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