Bonjour,
j'ai des petits soucis de performance sur une requête. La table _act_interlo_mail contient 1 million d'enregistrements, à peu près.
Comme je ne peux pas faire la requête suivante car la recherche sur le champ recherche n'est pas possible.
Je fais donc une vue avec cette requêteCode:
1
2
3
4
5
6
7 select `f1`.`intweb_cleunik` AS `intweb_cleunik`,`f1`.`int_cleunik` AS `int_cleunik`,`f1`.`refweb` AS `refweb` ,concat_ws(_utf8' ',`f2`.`prenom`,`f2`.`patronyme`) AS `prenom_nom` ,concat_ws(_utf8'',`f2`.`prenom`,_utf8' ',`f2`.`patronyme`,_utf8' (',`f1`.`refweb`,_utf8')') AS `recherche` from (`_act_interlo_mail` `f1` join `_act_interlo` `f2` on((`f1`.`int_cleunik` = `f2`.`int_cleunik`))) where `recherche` like '%xof%' limit 50;
pour pouvoir faire unCode:
1
2
3
4
5
6 create view recherche1 as select `f1`.`intweb_cleunik` AS `intweb_cleunik`,`f1`.`int_cleunik` AS `int_cleunik`,`f1`.`refweb` AS `refweb` ,concat_ws(_utf8' ',`f2`.`prenom`,`f2`.`patronyme`) AS `prenom_nom` ,concat_ws(_utf8'',`f2`.`prenom`,_utf8' ',`f2`.`patronyme`,_utf8' (',`f1`.`refweb`,_utf8')') AS `recherche` from (`_act_interlo_mail` `f1` join `_act_interlo` `f2` on((`f1`.`int_cleunik` = `f2`.`int_cleunik`)));
Mais c'est assez long car je ne peux pas créer d'index sur la vue ...Code:
1
2 select * from recherche1 where `recherche` like '%xof%' limit 50;
Il y a-t'il un moyen de faire mieux ? De faire différemment ?
D'avance, merci pour vos conseils et remarques.