[ maroon984 @ 11.06.2012. 13:28 ] @
Ovako,

u tabeli mi treba polje u koje ću upisati datum i vrijeme.
Tabela će biti particionisana po tom polju, i sve pretrage će uključivati neki vremenski opseg (...BETWEEN CURDATE()-INTERVAL 5 DAY AND CURDATE()... ili slično).
Nije mi bitan prostor koji zauzimaju (koliko znam DATETIME - 8bytes, TIMESTAMP - 4bytes), već mi je bitna brzina pretrage.

Da li neko ima iskustvo sa sličnim?

Pozdrav!
[ maroon984 @ 11.06.2012. 13:31 ] @
P.S.

OS: Linux
MySQL 5.5.24
Engine: InnoDB
[ bogdan.kecman @ 11.06.2012. 15:21 ] @
taj range query je uvek spor :(
ako ti nije bitno vreme onda ti je bolje da picis samo DATE
inace, bolje da koristis manji tip uvek ako mozes (zauzima manje mesta, skenira se manje stranica ..)
[ maroon984 @ 11.06.2012. 18:57 ] @
Code:
taj range query je uvek spor :(

Da li pod ovim mislis na upit koji sam napisao (sa between....), ili na DATETIME i TIMESTAMP kao polje za pretrazivanje?

U tabeli imam i polje "Korisnik, SMALLINT" koje je indeksirano, i pretraga obicno ide po ova dva polja.
Code:
SELECT bla, bla, bla FROM tabela WHERE Ftime BETWEEN '2012-01-01 12:00:00' AND '2012-01-02 12:00:00' AND Korisnik=12345;


Moze li se ovo optimizovati sa strane upita? Da li bi pomoglo da razdvojim DATE i TIME u dvije kolone?
[ bogdan.kecman @ 12.06.2012. 02:38 ] @
ma sporo pa sporo :( nema tu mnogo pomoci .. za taj upit bi ti najkorisnije bilo ako imas index (`Korisnik`, `Ftime`) ... sto je key manji nalazi se u manje stranica pa je index scan brzi .. zato kazem ako ti ne treba vreme bolje da ga izbacis, ako ti treba vreme ostavi ga (sporije je sa dva atributa nego sa jednim!).

najveci problem tu je kako mysql ume da koristi indexe i kako radi range scan
iscitaj obavezno: http://dev.mysql.com/doc/refman/5.5/en/range-optimization.html da ja sada ne prepricavam :)