ORDER BY lassú
Sziasztok!
van egy lekérdezésem mysql-ben.
a kalkuláció táblában 238 ezer rekord van.
a marka táblában a márkák nevei kb 500 rekord.
a márka táblán az indexek markaID primary + markanev-re is indexelek
explain:
gondolom az indexeléssel lessz baj.
Ha az ORDER BY kiveszem gyors a lekérdezés
Köszönöm a segítséget
■ van egy lekérdezésem mysql-ben.
a kalkuláció táblában 238 ezer rekord van.
a marka táblában a márkák nevei kb 500 rekord.
a márka táblán az indexek markaID primary + markanev-re is indexelek
explain:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE kalkulacio ALL NULL NULL NULL NULL 238858 Using temporary; Using filesort
1 SIMPLE partner eq_ref PRIMARY PRIMARY 4 april_utf.kalkulacio.partnerID 1
1 SIMPLE marka eq_ref PRIMARY PRIMARY 4 april_utf.kalkulacio.markaID 1
1 SIMPLE termekcsoport eq_ref termekcsoportkod termekcsoportkod 4 april_utf.kalkulacio.termekcsoportkod 1
1 SIMPLE kalkulacio ALL NULL NULL NULL NULL 238858 Using temporary; Using filesort
1 SIMPLE partner eq_ref PRIMARY PRIMARY 4 april_utf.kalkulacio.partnerID 1
1 SIMPLE marka eq_ref PRIMARY PRIMARY 4 april_utf.kalkulacio.markaID 1
1 SIMPLE termekcsoport eq_ref termekcsoportkod termekcsoportkod 4 april_utf.kalkulacio.termekcsoportkod 1
SELECT
marka.markanev,
termekcsoport.termekcsoportnev,
kalkulacio.kalkulacioID,
kalkulacio.ertekhatar_tol,
kalkulacio.ertekhatar_ig,
kalkulacio.szorzo,
kalkulacio.fix,
kalkulacio.evek,
partner.partnernev,
marka.markaID,
kalkulacio.akcioszam
FROM
kalkulacio
INNER JOIN marka ON (kalkulacio.markaID = marka.markaID)
INNER JOIN termekcsoport ON (kalkulacio.termekcsoportkod = termekcsoport.termekcsoportkod)
INNER JOIN partner ON (kalkulacio.partnerID = partner.partnerID) ORDER BY marka.markanev LIMIT 180959,22
marka.markanev,
termekcsoport.termekcsoportnev,
kalkulacio.kalkulacioID,
kalkulacio.ertekhatar_tol,
kalkulacio.ertekhatar_ig,
kalkulacio.szorzo,
kalkulacio.fix,
kalkulacio.evek,
partner.partnernev,
marka.markaID,
kalkulacio.akcioszam
FROM
kalkulacio
INNER JOIN marka ON (kalkulacio.markaID = marka.markaID)
INNER JOIN termekcsoport ON (kalkulacio.termekcsoportkod = termekcsoport.termekcsoportkod)
INNER JOIN partner ON (kalkulacio.partnerID = partner.partnerID) ORDER BY marka.markanev LIMIT 180959,22
gondolom az indexeléssel lessz baj.
Ha az ORDER BY kiveszem gyors a lekérdezés
Köszönöm a segítséget
markaID
kalkulacio.termekcsoportkod = termekcsoport.termekcsoportkod
kalkulacio.partnerID = partner.partnerID
InnoDB táblában az elsődleges kulcs szerint vannak fizikailag sorba rendezve az adatok. Én még ezt kipróbálnám.
pp
Igen
termekcsoport.termekcsoportkod
partner.partnerID