Troszke pogrzebałem po formu ale nie znalazłem nic ciekawego w tym temacie (z góry proszę jak ktoś znalazł coś podobnego p podanie linka).
Mój problem jest taki: pracuję od niedawna dla pewnej firmy, która prowadzi portal i wszystko by było ładnie gdyby nie jedna rzecz. Wszelkie dane z portalu są logowane do jednej tabeli ma on już 560 tyś rekordów (ciągle rośnie) i na niej oparte są wszelkie statystyki, które codzeinnie czyta mój szef. Szef musi mieć wszystko na wczoraj wiec jak wykonanie pewnego zapytania trwa np 40 sek i jeszcze przekroczy ttl przeglądarki i nic mu nie wyświetli to się denerwuje.
Ja mam pomysł żeby rozbić to wszysko na lata tzn. log_2004, log_2005, log_2006 itd.
wtedy tabele były by dużo mniejsze i zapytania dla poszczególnych lat trwały by krócej tylko, że zapytanie o wszystkie lata znów by było strasznie długie
Oto struktura tabeli:
CREATE TABLE `wyn_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `addr` varchar(15) NOT NULL DEFAULT '', `session_nr` int(11) NOT NULL DEFAULT '0', `partner` smallint(5) UNSIGNED NOT NULL DEFAULT '0', `user_id` int(11) NOT NULL DEFAULT '0', `fv` varchar(5) NOT NULL DEFAULT '', `page` varchar(50) NOT NULL DEFAULT '', `description` text NOT NULL, PRIMARY KEY (`id`), KEY `session_nr_idx` (`session_nr`), KEY `description` (`description`(255)), KEY `page_idx` (`page`), KEY `date_idx` (`date`), KEY `description_idx` (`description`(255)) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 COMMENT='do logowania najwazniejszych zdarzen w systemie' AUTO_INCREMENT=5057416 ;
Z góry dzięki za każdy pomysł.