non ho fatto nulla più di usare il db di prova che hai messo.Originariamente inviato da nicola75ss
Hai indicizzato dei campi per la soluzione che hai proposto?
copia-incolla, control-invio e basta
questa è la situazione corrente
CREATE TABLE `ps_order_history` (
`id_order_history` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_employee` int(10) unsigned NOT NULL,
`id_order` int(10) unsigned NOT NULL,
`id_order_state` int(10) unsigned NOT NULL,
`date_add` datetime NOT NULL,
PRIMARY KEY (`id_order_history`),
KEY `indice` (`id_order`,`date_add`)
) ENGINE=MyISAM AUTO_INCREMENT=2550501 DEFAULT CHARSET=utf8'
---
Al crescere delle righe, ovviamente, la differenza diventa incomparabile.
Con 1.000.000 di righe si vede come la crescita "quasi" lineare della join "prenda il volo"
codice:select SQL_NO_CACHE t1.* from ps_order_history as t1 inner join ( select id_order_history from ps_order_history order by `date_add` desc) as t2 on t1.id_order_history = t2.id_order_history group by t1.id_order having id_order_state = 6rispetto alla subquery dipendentecodice:Z:\data\pluto>ptime mysql -uroot -p pluto <f:\join.sql ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/ Copyright(C) 2002, Jem Berkes <jberkes@pc-tools.net> === mysql -uroot -p1 pluto === id_order_history id_employee id_order id_order_state date_add 2985956 6 5 6 2011-12-31 21:34:00 2936259 4 10 6 2011-12-31 23:56:26 2597744 9 39 6 2011-12-31 23:25:55 3333550 9 42 6 2011-12-31 23:35:40 2710505 10 44 6 2011-12-31 23:45:19 3164700 6 45 6 2011-12-31 23:02:49 3149934 7 50 6 2011-12-31 22:17:55 3364834 9 82 6 2011-12-31 22:28:30 Execution time: 5.760 s
(cosa interessante, almeno dà gli stessi risultati)
codice:SELECT SQL_NO_CACHE * FROM ps_order_history p1 WHERE (date_add=(SELECT MAX(p2.date_add) FROM ps_order_history p2 WHERE p1.id_order=p2.id_order)) and (id_order_state=6)che mi dici? se sei davvero curioso di fare qualche raffronto, magari ti posto il dump del mio db di provacodice:Z:\data\pluto>ptime mysql -uroot -p pluto <f:\inveloce.sql ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/ Copyright(C) 2002, Jem Berkes <jberkes@pc-tools.net> === mysql -uroot -p1 pluto === id_order_history id_employee id_order id_order_state date_add 2597744 9 39 6 2011-12-31 23:25:55 2710505 10 44 6 2011-12-31 23:45:19 2936259 4 10 6 2011-12-31 23:56:26 2985956 6 5 6 2011-12-31 21:34:00 3149934 7 50 6 2011-12-31 22:17:55 3164700 6 45 6 2011-12-31 23:02:49 3333550 9 42 6 2011-12-31 23:35:40 3364834 9 82 6 2011-12-31 22:28:30 Execution time: 193.779 s

Rispondi quotando