Lenteur recherche dans une table
Salut,
Via Entity Framework, Linq, Mysql Connector et une table de 895 402 rows.
Lors d'un simple appel linq:
Code:
var query = from p in db.view_cities where p.INDEXNAME == "BRETE" select p;
Ce code doit me retourner: 3 lignes.
On ne peux plus simple.
Si je regarde le code SQL généré sur la base de donnée MySQL, cela donne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SELECT
`Extent1`.`ID`,
`Extent1`.`COUNTRYCODE`,
`Extent1`.`ZIPCODE`,
`Extent1`.`CITY`,
`Extent1`.`STATE`,
`Extent1`.`STATECODE`,
`Extent1`.`ADMINISTATION`,
`Extent1`.`INDEXNAME`
FROM (SELECT
`tbl_cities`.`ID`,
`tbl_cities`.`COUNTRYCODE`,
`tbl_cities`.`ZIPCODE`,
`tbl_cities`.`CITY`,
`tbl_cities`.`STATE`,
`tbl_cities`.`STATECODE`,
`tbl_cities`.`ADMINISTATION`,
`tbl_cities`.`INDEXNAME`
FROM `tbl_cities` AS `tbl_cities`) AS `Extent1`
WHERE 'BRETE' = `Extent1`.`INDEXNAME`; |
avec un temps de 45,22 secs.
Si je lance la requête, mais simplifiée, depuis un client Mysql:
Code:
1 2 3 4 5 6 7 8 9 10 11
| SELECT
`tbl_cities`.`ID`,
`tbl_cities`.`COUNTRYCODE`,
`tbl_cities`.`ZIPCODE`,
`tbl_cities`.`CITY`,
`tbl_cities`.`STATE`,
`tbl_cities`.`STATECODE`,
`tbl_cities`.`ADMINISTATION`,
`tbl_cities`.`INDEXNAME`
FROM `tbl_cities`
WHERE 'BRETE' = `tbl_cities`.`INDEXNAME`; |
0,09 secs.
Quelqu'un a-t-il une explication, je suppose que j'ai raté quelque chose.
Un grand merci pour vos informations,
Daniel