Autor | Zpráva | ||
---|---|---|---|
souki Profil |
#1 · Zasláno: 23. 3. 2008, 22:19:24
Mám tabulku zbozi (zid,znazev), kategorie (kid,knazev) a z2k (zid,kid). Poslední jmenovaná slouží pro přiřazení zboží do kategorie (může být ve více kategoricííh)
budu mít dotaz třeba SELECT * FROM zbozi LEFT JOIN z2k USING(zid) WHERE z2k.kid = 1 ORDER BY znazev Jak nastavit index nebo to jinak upravit, abych se vyhnul "Using temporary; Using filesort"? Nebo to můžu ignorovat, když jde o dotřídění třeba 100 záznamů? |
||
ninja Profil |
#2 · Zasláno: 23. 3. 2008, 22:43:53
souki: databaze nemusi pouzit index, pokud treba vi, ze celkove je radek v tabulce malo. Respektive databaze muze podle skutecneho obsahu zvolit u stejne struktury ruzne optimalizovany dotaz.
Dulezite je aby ti to ukazalo dulezite indexy jako pouzitelne u daneho dotazu. Konkretne v tvem pripade predpokladam, ze mas zid, kid primarni klice. Pokud budes hodne rovnat podle znazev, dej index i na nej. V tabulce z2k by mely byt oba sloupce v primarnim klici. |
||
souki Profil |
#3 · Zasláno: 23. 3. 2008, 23:11:13
ninja
možná jsem měl dodat, že z2k má 100 000 řádků :) |
||
Časová prodleva: 17 let
|
0