Utilisation index fonction des colonnes retournées?
Bonjour,
j'ai une table d'environ un million d'entrées avec un index composé "Service" d'une cardinalité de 186.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE TABLE `pc_services` (
`CIE` varchar(5) NOT NULL,
`NO_ABONNE` varchar(20) NOT NULL,
`LIEN_DECO` varchar(5) NOT NULL,
`CD_SERV` varchar(20) NOT NULL,
`DESCPT` varchar(50) DEFAULT NULL,
`CS_CTG` varchar(5) NOT NULL,
`EST_DEM` smallint(6) DEFAULT NULL,
`NO_SERIE` varchar(20) DEFAULT NULL,
`DT_INSTAL_FACT` date DEFAULT NULL,
`DT_ANNUL_FACT` date DEFAULT NULL,
`DT_INSTAL_TECH` date DEFAULT NULL,
`DT_ANNUL_TECH` date DEFAULT NULL,
KEY `Abonne` (`CIE`,`NO_ABONNE`,`LIEN_DECO`),
KEY `service` (`CS_CTG`,`CD_SERV`) USING HASH
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
Contrairement à ce que j'attends la requete simple suivante
Code:
1 2
| select * from pc_services as pc_r
where pc_r.cs_ctg=41 and pc_r.cd_serv = 'M41T00' |
n'utilise pas l'index "Service":
type;select_type;table;id;possible_keys;key;key_len;ref;rows;Extra
ALL;SIMPLE;pc_r;1;service;NULL;NULL;NULL;908238;Using where
alors que
Code:
1 2
| select cs_ctg from pc_services as pc_r
where pc_r.cs_ctg=41 and pc_r.cd_serv = 'M41T00' |
l'utilise:
id;select_type;table;type;possible_keys;key;key_len;ref;rows;Extra
1;SIMPLE;pc_r;index;service;service;29;NULL;908238;Using where; Using index
Une requête ne doit retourner que les valeurs incluses dans un index pour qu'il soit utilisé?!
Merci