phpbar.de logo

Mailinglisten-Archive

Abfrage verschnellern

Abfrage verschnellern

Technik via echtwahr.com (NT7) technik at echtwahr.com
Die Jul 15 16:49:01 CEST 2003


Hallo Liste,

ich bin jetzt schon seit 2 Tage auf der suche diese Abfrage schneller zu
bekommen:

select distinct itNum from tblItemCat, tblCats where  catParent = 9719 and
(itCategory=catChild || it2ndCat=catChild) and
(itLand = 1 or itLand = 4 or itLand = 6 or itLand = 9 or itLand = 0);

Explain:
| table      | type | possible_keys              | key       | key_len | ref
| rows   | Extra                       |

| tblCats        | ref      | PRIMARY,catChild,catParent | catParent  |
5      | const     |     81     | where used; Using temporary |
| tblItemCat   | ALL   | itCategory,it2ndCat                 | NULL      |
NULL | NULL  | 204587 | where used                  |

tblCats hat einen Index auf catParent und einen auf catChild
tblItemCat hat einen index auf itCategory und einen auf it2ndCat


Was ich nicht verstehe, es sind in der Tabelle tblCats 87 Einträge für
catParent=9719 und
und 2379 einträge bei denen  "catChild=itCategory || catChild =it2ndCat"
Zutrifft.

Wieso sucht er die ganze Tabelle (204587) nach treffern durch

Hier mal einen count(*)
select distinct count(itNum) from tblItemCat, tblCats where  catParent =
9719 and (itCategory=catChild || it2ndCat=catChild);
| count(itNum) |
+--------------+
|         2379 |
+--------------+
1 row in set (7.78 sec)

Mysql 3.23.51 auf Debian
Dual Xeon 1.7 Ghz
1 GB RAM
SCSI Platten

Wäre super, wenn jemand mir helfen kann!



Mit freundlichen Grüssen
      Thomas Goik
-----------------------------------------
Besuchen Sie uns:
http://www.echtwahr.de
http://www.echtwahr.com


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


php::bar PHP Wiki   -   Listenarchive