Bonjour,
J'ai deux tables de structure non identique, la première comporte 200000 lignes et la deuxième 500000.
Je crée une vue de l'union des deux tables:
Maintenant si je fais des SELECT
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
21
22
23
24
25
26
27
28
29
30
31 CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`%` SQL SECURITY DEFINER VIEW `v_sondenserie` AS SELECT `sonde_cf_mesureok`.`Nserie` AS `Nsonde`, `sonde_cf_mesureok`.`A` AS `A`, `sonde_cf_mesureok`.`B` AS `B`, `sonde_cf_mesureok`.`R0` AS `R0`, `sonde_cf_mesureok`.`Pente1` AS `Pente1`, `sonde_cf_mesureok`.`Pente2` AS `Pente2`, `sonde_cf_mesureok`.`DateTime` AS `datetime`, `sonde_cf_mesureok`.`Nposte` AS `nposte` FROM `sonde_cf_mesureok` WHERE (`sonde_cf_mesureok`.`Nserie` IS NOT NULL) UNION SELECT `sondemesure`.`NSonde` AS `Nsonde`, `sondemesure`.`A` AS `A`, `sondemesure`.`B` AS `B`, `sondemesure`.`R0` AS `R0`, `sondemesure`.`Pente1` AS `Pente1`, `sondemesure`.`Pente2` AS `Pente2`, `sondemesure`.`DATETIME` AS `datetime`, `sondemesure`.`NPoste` AS `nposte` FROM `sondemesure` WHERE (`sondemesure`.`NSonde` IS NOT NULL)
Select table 1
Réponse en 630ms et utilise l'index sur nserie
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM bdprod.sonde_cf_mesureok where nserie=46014075641;
Select table 2
Réponse en 150ms et utilise l'index sur nsonde
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM bdprod.sondemesure where NSonde=46014075641;
Select view
Réponse en 5sec sans utilisation de l'index
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM bdprod.v_sondenserie where nsonde=46014075641;
Pourquoi lorsque je fais un SELECT avec une clause where bien précise, le temps de réponse de ma vue est si long?
Partager