phpbar.de logo

Mailinglisten-Archive

alternative zu joins ?

alternative zu joins ?

Michael Donning donning at informenta.de
Die Feb 4 15:00:34 CET 2003


Hallo Nikolas,

ich weiß zumindest wo das Problem liegt:

> "select artdata_wavi.*,artdata_web.* from artdata_web, artdata_wavi where
> artdata_web.artnr_neu=artdata_wavi.artnr_neu and
> (artdata_web.wbez like 'helm%' or artdata_wavi.artnr_alt like 'helm%');"

zwei Kriterien mit like '%' in zwei tabellen und mit Bedingung OR, daher
wird MySql vermutlich nichts anderes übrig bleiben, als mindestens eine
Tabelle komplett zu durchsuchen.

Schneller wird das nur, wenn durch das Where in einer Tabelle die Anzahl der
in Frage kommenden Sätze einschränkbar ist (durch das OR wird in diesem Fall
alles über den Haufen geworfen nach dem Motto "kann sein, muß aber nicht").

kannst Du die likes nicht auf eine Tabelle beschränken? Oder wenigstens das
OR killen.

Notfalls kann man mit Union arbeiten (geht aber erst ab 4.0). Dann würde man
im 1. Statement eine Like-Abfrage nur auf die eine Tabelle machen und im 2.
Statement nur auf die 2. Tabelle. Das ganze über "Union All" verbinden,
könnte gehen.

Das mit dem leichten Import hab ich auch nicht so ganz kapiert. Es gibt ja
auch Update Statements... mit denen man nur einen Teil aktualisiert...

Grüße und viel Erfolg,
Michael Donning

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive