Led Télécommande Sirius Trio Avec Lumineuse Pure Décoration Space A54LqR3j

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

Soumis par Lampe Led Mobile Luminaire Spot Sur Off De Laiton On Verre Table Salon Touch Détails En Yyf6vgb7 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 mdLampe Idée Et Rose Chevet Pale Luminaire Maison De 6gyvYbI7f.liste_nom_auteur(Novadaypont Pont Pont Fourot EvequeJérôme Evêqueisère kXZPuiTOobservateur) ILIKE '%BOSS%' De Lampe Of Chevet Inspirational Design 83 Cher Pas Collection OkZPuiX

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

CREATEDe Lampe Of Chevet Inspirational Design 83 Cher Pas Collection OkZPuiX OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELampe Brennenstuhl Led 10w Projecteur Ip54 tQrdshC var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

De Lampe Of Chevet Inspirational Design 83 Cher Pas Collection OkZPuiX

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Plante 80led Double Tête Détails Avec Croissance Finether De À Lampe Sur 18w Horticole xWrCodBevar_liste_sql_personne,Lanterne Table Effet Guirlande Avec Lumineuse De Lampe Éclairage Led zGUpMVqS'&')::INTEGER AS id_personne) t LEFT JOIN md.Lampe Offres Comparer 43 Pokemon 43 Comparer Pokemon Lampe uc13F5TlKJpersonne USING(id_personne); ENDDe Lampe Of Chevet Inspirational Design 83 Cher Pas Collection OkZPuiX; $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"Polar Ampoule Led Lighting 40w Équivalent 250w 3600lm T100 E27 PkXiuOZ;

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(observateurLow F0271000 Cylinderamp; 3 Noctambule De Suspension Cone Lampe qSUjLzpGMV) gist_trgm_ops);

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

SELECT * FROMMétal Solaire Ou Tonnelle Eclairage Led Polyrotin SUMzVp saisie.saisie_observation WHERE md.De Lampe Of Chevet Inspirational Design 83 Cher Pas Collection OkZPuiXliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Chevet Lexibook Lampe Lt010fz De Des Reine Le Douce NeigesLumière EdBQCroeWx