Partizionamento Tabelle
Salve a tutti,
Ho una tabella, che contiene all'incirca 400K Record, e negli ultimi tempi, i record giornalieri stanno crescendo all'incirca di 2000 Al giorno.
Nello specifico, la tabella è relativa alle chiamate in Ingresso / Uscita di un server voce Asterisk.
La struttura della tabella è la seguente:
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`dcontext` varchar(80) NOT NULL DEFAULT '',
`channel` varchar(80) NOT NULL DEFAULT '',
`dstchannel` varchar(80) NOT NULL DEFAULT '',
`lastapp` varchar(80) NOT NULL DEFAULT '',
`lastdata` varchar(80) NOT NULL DEFAULT '',
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '',
`amaflags` int(11) NOT NULL DEFAULT '0',
`accountcode` varchar(20) NOT NULL DEFAULT '',
`userfield` varchar(255) NOT NULL DEFAULT '',
`uniqueid` varchar(32) NOT NULL DEFAULT '',
KEY `calldate` (`calldate`,`src`,`dst`,`billsec`,`disposition`,`uniqueid`,`wholesale_date_calc`),
KEY `src` (`src`),
KEY `lastdata` (`lastdata`),
KEY `dst` (`dst`),
KEY `billsec` (`billsec`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
La maggior parte delle query che vengono fatte si basa sui campi DISPOSITION, DCONTEXT,CALLDATE, e secondariamente sui campi SRC/DST.
Pensavo di partizionare la tabella in base al DCONTEXT ( chiamate in ingresso / uscita) e poi, subpartizionare in base al campo DISPOSITION che ha 5 valori possibili.
Ho provato a fare come detto sopra, ma mi si presenta l' Error 1064 (42000).
Da quanto ho capito, la partizione ( nel mio caso pensavo di farla BY LIST) lavora solamente su campi interi e non su campi di tipo varchar.
Esiste una soluzione, per poter usare lo stesso il partizionamento sui campi varchar?
La versione di mysql che uso è MYSQL 5.1.4.
Grazie a tutti per l'attenzione e per il tempo dedicatomi
Marco.