Autor Zpráva
souki
Profil
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
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
ninja
možná jsem měl dodat, že z2k má 100 000 řádků :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: