Salve a tutti,
ho il seguente problema.
Ho creato una tabella che contiene i seguenti campi:|id|idArticolo|idSettore|data|...... ed altri.
Ho creato degli indici su idArticolo,idSettore,data, perchè sono quelli che finiscono nelle query di tipo select per il recupero dei dati.
Questa tabella ha molti record(che tendonoa crescere), dal momento che in essa confluiscono appunto tutti gli articoli,di un certo settore, in una certa data,con tutte le info su questi.
Il mio primo problema è quello che recuperare articoli in un certo range di un certo settore impiega molto tempo: come potrei fare per velocizzare la query?
Ad esempio se faccio:
SELECT * FROM articoli WHERE settore='calcio' and idArticolo='11' and data>'2008-01-01 21:02:28' and timestamp<='2008-02-09 04:23:17' ORDER BY timestamp ASC
è una query decisamente lenta.
Ora se io volessi recuperare l'ultimo articolo venduto per un settore, nel modo più veloce possibile come potrei fare?
select * from articoli where data=(select max(data) from articoli where idArticolo = '11' and settore = 'calcio') and idArticolo = '11' è la migliore soluzione che ho trovato, ma anche questa è una query lentina.
Pensare a creare tante tabelle divise per articoli potrebbe essere una soluzione ottimale?
Grazie per l'aiuto che potrete darmi.
Saluti
Andrea