Salut,
Via Entity Framework, Linq, Mysql Connector et une table de 895 402 rows.
Lors d'un simple appel linq:
Ce code doit me retourner: 3 lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part var query = from p in db.view_cities where p.INDEXNAME == "BRETE" select p;
On ne peux plus simple.
Si je regarde le code SQL généré sur la base de donnée MySQL, cela donne:
avec un temps de 45,22 secs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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`;
Si je lance la requête, mais simplifiée, depuis un client Mysql:
0,09 secs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11SELECT `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`;
Quelqu'un a-t-il une explication, je suppose que j'ai raté quelque chose.
Un grand merci pour vos informations,
Daniel
Partager