Autor Zpráva
hugo123
Profil *
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
Co říká EXPLAIN. A jak vypadá struktura (datové typy sloupců, současné indexi)?
hugo123
Profil *
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
Zkusil bych třísloupcový index (id_clanok, ip, datum).

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: