Ciao a tutti ho questa tabella che ha 27380 record
Codice PHP:
CREATE TABLE `dyn_carrello` (
`id` int(10) unsigned NOT NULL auto_increment,
`id_utente` int(5) unsigned NOT NULL default '0',
`numero` varchar(50) NOT NULL default '',
`sconto_pianificazione` float(5,2) unsigned NOT NULL default '0.00',
`sconto_ruolo` float(5,2) unsigned NOT NULL default '0.00',
`sconto_qta` float(5,2) unsigned NOT NULL default '0.00',
`sconto_discrezionale` float(5,2) unsigned NOT NULL default '0.00',
`prezzo` float(8,2) unsigned NOT NULL default '0.00',
`qta` int(10) unsigned NOT NULL default '0',
`id_ordine` varchar(11) NOT NULL default '',
`nota_riga` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=256009 DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=256009 ;
precedentemente usavo php4 e mysql3 e il campo id_ordine era un INT e tutto filava liscio, poi per esigenze imposte da modifiche richieste, il campo id_ordine è diventato un VARCHAR, php5 e mysql4, eseguendo questa query
Codice PHP:
SELECT dyn_catalogo . * , dyn_carrello.qta, dyn_carrello.nota_riga
FROM dyn_carrello
INNER JOIN dyn_catalogo ON dyn_carrello.numero = dyn_catalogo.numero
WHERE dyn_carrello.id_utente = '7'
AND dyn_carrello.id_ordine = '0'
ORDER BY dyn_catalogo.codice
che per altro restituisce un record la query diventa talmente lenta da restituire Fatal error: Maximum execution time of 30 seconds exceeded in... ho provato anche per curiosità a riportare il campo id_ordine a int, ma non cambia nulla, l'unica cosa che rende la query gestibile è la rimozione di ORDER BY che però a me serve, tengo a precisare che tutto gira in locale sul mio portatile, come detto sopra, la stessa query su php4 e mysql3 è una scheggia, a questo punto mi e vi chiedo, c'è qualcosa che non va nella mia installazione php-mysql oppure le caratteristiche dell'ambiente aggiornato php-mysql richiedono delle modifiche nella query?