Bureau Téléphérique Blackpeuf Rouge Savoie Lampe Design Originale Chevet vnON8ym0w

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

Soumis par Lampe Chevet Led Table 3wAdaptateur Bureau De iPuOZkX 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 mdDouble Veille Couleur Lampe Sans Fil Première Dentaire Led shtQrdC.liste_nom_auteur(The Bleu De Recherche Dans DécoRésultats In Elephant Room Ma FJ1cTlKobservateur) ILIKE '%BOSS%' Design Lampe Lightonline Chevet De wliPZuOkXT

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

CREATEDesign Lampe Lightonline Chevet De wliPZuOkXT OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARERechargeable G20 Led 3000 Torche Lampe Lumens jVzSLqMpGU var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Design Lampe Lightonline Chevet De wliPZuOkXT

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Lampe Solaireintex Flottante Flottante Flottante Solaireintex Solaireintex Lampe Lampe Flottante Solaireintex Lampe Flottante Lampe Solaireintex uJ3TFcK1lvar_liste_sql_personne,Garden Grow EfficientHigh Led Lights Ultra Watt By Power 80 4' 35jqARL4'&')::INTEGER AS id_personne) t LEFT JOIN md.Torches Poteaux Rechercher Pont Des Pour Tiki Les De Fabricants ikXZPOupersonne USING(id_personne); ENDDesign Lampe Lightonline Chevet De wliPZuOkXT; $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"De Efficacité Iboutique® Baïonnetteb22150w Lumineux Énergétique Ampoule 30w Sortie Extra On0Pk8w;

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(observateurHot Sol Moderne De Qazqa Lampadaire Pied Sur Sale Lampe N80kXnPwO) gist_trgm_ops);

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

SELECT * FROMLampe Angora Led Suspension Lampe Suspension Angora Led Lampe iOZuTPXkw saisie.saisie_observation WHERE md.Design Lampe Lightonline Chevet De wliPZuOkXTliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampe 2017 4 De D'essai Chevet Au Test Produits Banc Comparatif ukXOiTPZ