14-04-2011, 01:31 PM
bon, j'ai viré toutes les jointures et toujours le même problème:
les tests sur une table d'un million d'entrées:
Time : 178.1ms ( SELECT map2.x, map2.y, map2.contenu, map2.x1, map2.y1 )
Time : 177ms ( SELECT map2.x1, map2.y1 )
Time : 23.8ms ( SELECT map2.x, map2.y )
selon les données récupérées les temps sont nettement différents (le ORDER BY ne semble pas aggraver significativement te temps d'exécution, ni l'ordre des champs dans la requete sql )
c'est vraiment mystérieux le fait que si je récupère les champs x1 et x2 cela me prenne 8 fois plus de temps que de récupérer les champs x et y
La requête qui m'intéresse (celle à 178.1ms):
Structure de la table
remarque x1 et y1 sont des coordonnées alternative à x et y car j'utilise un plan projeté, mais le soucis ne semble par être là.
les tests sur une table d'un million d'entrées:
Time : 178.1ms ( SELECT map2.x, map2.y, map2.contenu, map2.x1, map2.y1 )
Time : 177ms ( SELECT map2.x1, map2.y1 )
Time : 23.8ms ( SELECT map2.x, map2.y )
selon les données récupérées les temps sont nettement différents (le ORDER BY ne semble pas aggraver significativement te temps d'exécution, ni l'ordre des champs dans la requete sql )
c'est vraiment mystérieux le fait que si je récupère les champs x1 et x2 cela me prenne 8 fois plus de temps que de récupérer les champs x et y
La requête qui m'intéresse (celle à 178.1ms):
SELECT map2.x,
map2.y,
map2.contenu,
map2.x1,
map2.y1
FROM map2
WHERE (map2.x >= 10 AND map2.x <= 40) AND (map2.y >= -30 AND map2.y <= 0)
ORDER BY map2.y ASC, map2.x ASC ");
Structure de la table
--
-- Structure de la table `map2`
--
CREATE TABLE IF NOT EXISTS `map2` ( `id` int(11) NOT NULL AUTO_INCREMENT,
`x` smallint(11) NOT NULL,
`y` smallint(11) NOT NULL,
`x1` smallint(11) NOT NULL,
`y1` smallint(11) NOT NULL,
`contenu` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `xy` (`x`,`y`),
KEY `x1y1` (`x1`,`y1`),
KEY `x` (`x`),
KEY `y` (`y`),
KEY `x1` (`x1`),
KEY `y1` (`y1`),
KEY `x_2` (`x`,`y1`),
KEY `x1_2` (`x1`,`y`)
)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1222503 ;
remarque x1 et y1 sont des coordonnées alternative à x et y car j'utilise un plan projeté, mais le soucis ne semble par être là.