se guardo con "show variables like 'query_cache_size' " mi da 0, quindi dovrebbe essere 0 la sua dimensione....però....
ti faccio vedere le mie prove (la query n.1 ritorna 4000 record, la n.2 10500):

1
select * from studente21k
where (citta='MO' or citta='RE' or citta='BO' or citta='FI') and (acorso=1 or acorso=2)

2
select * from studente21k
where acorso=1 or acorso=2 or acorso=3


se eseguo appena aperta la connessione la 1 mi da=0.500, se subito dopo eseguo la 2 mi da=0.060.....se invece dopo aver riaperto la connessione inverto l'ordine, per la 2 ci mette 0.600, per la 1 0.040.....questo sembra voler dire che una volta agito su una tabella, le sue info rimangono da qualche parte, se no come fa a essere così più veloce??

P.S.: ho provato a scrivere alla community di MySQL, ma gli ho scritto in italiano e non mi hanno risposto....scrivere tutto questo in inglese ci metterei 2 giorni

se hai qualche idea grazie....