Autor | Zpráva | ||
---|---|---|---|
hugo123 Profil * |
#1 · Zasláno: 21. 12. 2013, 21:50:00
Ahojte,
pri clankoch si zapisem vsetky zobrazenia, a pritom overujem, aby za 1 hodinu sa zvysilo len 1 zobrazenie pre 1 pouzivatela. Tu kontrolu vykonavam takto: SELECT id FROM clanky_zobrazovania WHERE id_clanok = 7784 and typ = 'videnie' and ip = '178.253.154.119' and datum > date_sub(now(),interval 1 hour) typ => moze byt videnie/tlac/ulozenie Vsetko je v poriadku, len ten dopyt je strasne pomaly, viete mi prosim poradit, ako vytvorit indexy, aby to bolo rychle? Ako je najlepsie vytvorit indexy? Alebo nejako inak opravit ten SELECT? Vopred dakujem velmi pekne. |
||
ninja Profil |
#2 · Zasláno: 21. 12. 2013, 21:53:07
Co říká EXPLAIN. A jak vypadá struktura (datové typy sloupců, současné indexi)?
|
||
hugo123 Profil * |
#3 · Zasláno: 21. 12. 2013, 22:10:17
ninja:
mam zatial iba PRIMARY index na ID nic viac. Ip je varchar, typ je enum, inak by malo byt vsetko jasne. EXPLAIN hlasi, ze prechadza vsetky riadky. Na ake sltpce mam vytvorit indexy prosim? |
||
pcmanik Profil |
hugo123:
Dvojstĺpcový index nad id_clanok a typ by mal pomôcť. A možno by som ho rozšíril aj na dátum, ale to už skús podľa explainu. |
||
Kajman Profil |
#5 · Zasláno: 22. 12. 2013, 20:19:32
Zkusil bych třísloupcový index (id_clanok, ip, datum).
|
||
Časová prodleva: 12 let
|
0