question MySLQ et index - SQL/NoSQL - Programmation
Marsh Posté le 06-04-2006 à 15:52:13
amha tu peux pas faire grand chose, avec une requête comme ça il faut parcourir toute la table, de toute manière...
Marsh Posté le 06-04-2006 à 16:31:39
tu m'inquiete la
Marsh Posté le 06-04-2006 à 16:35:41
Je peux me tromper, hein, je suis pas un expert...
C'est un index sur (b - min) et un sur (b - max), qu'il te faudrait, plutot, non?
Marsh Posté le 16-04-2006 à 12:14:01
Le parsing de la table entière ne devrait pas être trop long ... Par contre, si tu la tries, là ca va te prendre quelques 10aines de secondes
Marsh Posté le 16-04-2006 à 12:38:11
Max Evans a écrit : Le parsing de la table entière ne devrait pas être trop long ... Par contre, si tu l'as tries, là ca va te prendre quelques 10aines de secondes |
oula, ça fait mal aux yeux
Marsh Posté le 16-04-2006 à 13:54:15
ReplyMarsh Posté le 16-04-2006 à 20:17:25
salut n'hésite pas à utilier EXPLAIN {ta requete} pour voir s'il te manque pas des index.
sinon je pensais aux sous requetes si t'es sous Mysql5 ça pourra marcher sinon je sais pas
Marsh Posté le 16-04-2006 à 21:04:55
overider a écrit : salut n'hésite pas à utilier EXPLAIN {ta requete} pour voir s'il te manque pas des index. |
pas de pb pour utiliser mySQL 5.
je regarde EXPLAIN , je connaissais pas
Marsh Posté le 16-04-2006 à 21:18:25
"Est-ce que 2 index sur les colonnes min et max suffisent ? "
Plutot un index sur deux colonnes nan ?
Marsh Posté le 06-04-2006 à 15:45:15
Bonjour à tous
Si j'ai une table
"table"
qui contient 3 colonnes
a, min, max ( 3 INT non signés )
je veux chopper tous les "a" qui vérifient b>=min et b<=max pour un b quelconque.
la requete sera donc normalement
SELECT a FROM table WHERE b>=min AND b<=max;
Jusque l'a je devrais avoir bon
maintenant, la table 'table' contient beaucoup beaucoup (à priori, de l'ordre de la 10aines de million) de lignes.
Généralement, sur une entree "min" et "max" sont assez proches (quelques 10aines de différences).
Vu la construction de la table et son remplissage (que je ne vais pas détailler ici ...), il ne devrait y pas y avoir masse de lignes en sorti de cette requete. de l'ordre de 100 à tout casser.
mais les 2 requêtes
SELECT a FROM table WHERE b>=min
et
SELECT a FROM table WHERE b<=max
vont elles retourner des milliers (millions ?) d'éléments
Je me demandais comment optimiser la premiere requete ...
Est-ce que 2 index sur les colonnes min et max suffisent ?
Faut-il faire autre chose ?
---------------
PeK