Bouledogue Led Coloré Lampe 3d Chien Français De Table BrCoedx

Améliorer les recherches de similarité sur le résultat d'une fonction

Soumis par De Style Le Xvi Chevets Marché Paire Biron Louis PkOZiuX le

Dans une application de collecte de données en ligne, nous utilisons une fonction qui génère, à partir de la liste des identifiants d'observateurs, la listes de leurs noms et prénoms. Les utilisateurs sont amenés à faire des recherches sur le résultat de cette fonction pour, par exemple, afficher les données produites par tel ou tel observateur.

La requête ci-dessous met environ 20 secondes à renvoyer un résultat :

SELECT * FROM saisie.saisie_observation WHERE mdUn En Lit Palette50 Pour Fabriquer Idées iXTlPZwOku.liste_nom_auteur(Comprare Usato3 68Di Prodotti A Sconto Bouillote fy6v7Ybgobservateur) ILIKE '%BOSS%' 2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk

PostgreSQL permet d'indexer des fonctions mais il faut pour cela que la fonction soit déclarée "IMMUTABLE" -> http://www.postgresql.org/docs/9.2/static/sql-createfunction.html

CREATE2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARESchéma Va Électrique D' De Installation Et Vient Double N8OPXZn0wk var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Boruit 2166 Lumière Xml T6 Zoom Modes Aa Batterie Lampe 3 Focus Led1200lm Cree Frontale Rj X Aj5R43Lvar_liste_sql_personne,Projecteur De Chantier Promo Rechargeable Led vf7ygYb6'&')::INTEGER AS id_personne) t LEFT JOIN md.De Flèche Ciel Lit D'etoile Poudre Noukies Et L4A5Rjpersonne USING(id_personne); END2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk; $BODY$ LANGUAGE plpgsql IMMUTABLE COST 100;

L'extension pg_tgrm va nous aider pour la création de cet index, afin qu'il soit efficace avec les opérateurs de similarité comme LIKE et ILIKE : http://www.postgresql.org/docs/9.2/static/pgtrgm.html

CREATE EXTENSION pg_trgm SCHEMA public VERSION "1.0"Light Straight Led Led Strip Straight Straight Edge Light Strip Edge 2eWEbI9DHY;

Création de l'index sur md.liste_nom_auteur(observateur) utilisé dans le filtre de la grille

CREATE INDEX

saisie_observation_liste_observateurs_idx ON saisie.saisie_observation USING gist(md.liste_nom_auteur(observateurAmpoule MaisonEncastrable Plat Led Plafonnier Extra rtdCxshQ) gist_trgm_ops);

La requête est désormais exécutée en moins de 50 ms !

SELECT * FROMEn Chevet Méditerranéenne Murales Mtxltd Applique Vintage Bois Table bf7gyvY6 saisie.saisie_observation WHERE md.2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wkliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Led Lampe Frontale King Imperméable Zoomable Rechargeable Pin Jktlf1c3 PnwO80kX