Ho un dubbio che non riesco a chiarire....
venendo al dunque questa è la mia tabella:
codice:
CREATE TABLE `ipblocker` (
`start` int(10) unsigned NOT NULL default '0',
`end` int(10) unsigned NOT NULL default '0',
`rangename` varchar(128) NOT NULL default '',
KEY `indice` (`start`,`end`)
) TYPE=MyISAM;
il tipo di query che ci devo fare è questo:
codice:
SELECT rangename FROM `ipblocker` WHERE start <= '456654' AND end >= '456654' LIMIT 1
di volta in volta cambia la costante int che uso per il confronto....
il mio dubbio sta nel fatto che non so se ho prestazioni migliori usando una key unica (multidimensionale) come ho fatto sopra oppure usando due key separate una per start e una per end
(le key sono index, non unique, in quanto devono essere permessi dati doppi)...
facendo l'explain gli indici li usa entrambe le volte (nel secondo caso con due key ovviamente ne usa solo una: start... quindi la seconda la creo per nulla...), solo che con alcuni ip prevede poche row con un modo e più con un altro e con altri ip il contrario, quindi non so quale sia la migliore...
in linea teoria la prima vero? in quanto prima guarda che sia rispettato il primo e poi controlla che sia rispettato pure il secondo...
illuminatemi
grazie, cya