phpbar.de logo

Mailinglisten-Archive

Abfrage verschnellern

Abfrage verschnellern

Technik via echtwahr.com technik at echtwahr.com
Die Jul 15 16:46:45 CEST 2003


Hallo Michael ,

> kannst Du die Spaltennamen im Select-Statement mal qualifizieren
> (Tabellenname bzw. alias davor),
Mach ich:

select distinct count(A.itNum) from tblItemCat AS A, tblCats AS B where
B.catParent = 9719 and (A.itCategory = B.catChild or A.it2ndCat =
B.catChild)
 and A.itLand IN ( 1, 4, 6, 9, 0) limit 0,35;

Braucht: 1 row in set (7.44 sec)

> das Explain mal lesbar formatieren und
B,  ref,  PRIMARY,catChild,catParent, catParent , 5 , const,  81, where used
 A,  ALL, itCategory,it2ndCat , NULL, NULL, NULL, 193152 , where used

> die Create-Table Statements (ggf.
> gekürzt) beilegen?
show columns from tblItemCat
 itNum| int | PRI
itCategory | int |  MUL
 it2ndCat   | int | MUL
 itLand | tinyint

Show columns from tblCats
| catParent   | int | MUL
| catChild    | int  | PRI  | auto_increment |

> 2. Mach mal ein Check Table auf die beteiligten Tabellen, das aktualisiert
> die Statistiken über die Werteverteilung (kardinalität).
Hatte ich schon gemacht!

> 3. Notfalls kann man MySQL dazu verdonnnern einen bestimmten Weg zu gehen
> und zwar entweder eine bestimmte Richtung beim Join (STRAIGHT_JOIN) oder
> beim Join einen (!) bestimmten Index (USE INDEX) zu verwenden.

Ich weiß, aber wie bekomme ich es hin, das er nicht die ganze tabell
tblItemCat ließt?

gruß Thomas

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


php::bar PHP Wiki   -   Listenarchive