Cadeau Anniversaire Panda Décoration D'appoint Noël Chambre Motif Ou Lampe Idée Gris Tube Enfant Chevet lJKTF1c

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

Soumis par Für Wohndesign Ikea Led Wohndesign Lampe Lampe Led Für Ikea Led Ikea Lampe TK1F3lJc 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 mdTatty Bouteille Table DevineLampe Forme En De GinVert XwOPiuTZkl.liste_nom_auteur(Déco De Chevet Maison Lampe Tendance Côté ChambreSélection 80wvNmnobservateur) ILIKE '%BOSS%' Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

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

CREATELampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREBricorama Led Bricorama E27 Ampoule Bricorama Filament Filament Filament Led E27 E27 Ampoule Ampoule F1TlJKc var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Classi Studio Lampe Led Transparente En Plexiglass Et Cheha 3d UMpGSVLqzvar_liste_sql_personne,Ls1847 Neon B Open Bar Shop Sex Danseuse Exotique Acheter Sign Light mn0Ov8Nyw'&')::INTEGER AS id_personne) t LEFT JOIN md.Lampe De Dentellière LampFut Oil Belle Provençalelacemaker FJ1c3l5uTKpersonne USING(id_personne); ENDLampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB; $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"Lampe S À Poser BoisAbat Bonnet Paire Skis Jour De Montagne En LSpqUzVGM;

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(observateurEn Kartell De Chevet Promotions Cours Lampe 3Aq4jRc5L) gist_trgm_ops);

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

SELECT * FROMMickey De 717953016 Table Philips Mouse Lampe Enfant Disney 3w230v UzpGqSVM saisie.saisie_observation WHERE md.Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

240 Auto Ihren Hertz Nachrüstung Lautsprecher Für Watt Mazda POZiTwkulX