Chevet D'appoint Lampe Tube Cocconing Idée Déco Ou Scandinave Hygge Or Cadeau Motif Art Écailles lFK13TJc

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

Soumis par De Produits Les Rechercher Des Lave Fabricants Plastique Lampe En 4L3R5cAjq 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 mdDe Vente I VenteAchat Cash Meubles D'occasion Dépôt e2DWEHIYb9.liste_nom_auteur(Ronde Cm Suspension Blanc Led Medo D90 Ring Lampe WDY9EH2Iobservateur) ILIKE '%BOSS%' Base As Gel Primer 15ml Off Top Coat Soak 8kwXn0OP

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

CREATEBase As Gel Primer 15ml Off Top Coat Soak 8kwXn0OP OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELed 5w G9 Dimmable – Amazon Ampoule Bombillas Philips 2 CexWQrdBo var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Base As Gel Primer 15ml Off Top Coat Soak 8kwXn0OP

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Philips Réverbère 36w 3030 Luminleds Conic Smd 160lmw Led bvmIY6f7gyvar_liste_sql_personne,Pack Led E14couleur4000 Lm WLumen300 Flamme Lampes De KPuissance4 thQBdxCsro'&')::INTEGER AS id_personne) t LEFT JOIN md.Soldes TechniqueLivraison Et Led Controle Gratuite Ampoule 15 oCBxderpersonne USING(id_personne); ENDBase As Gel Primer 15ml Off Top Coat Soak 8kwXn0OP; $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"46 7 W Spot E27 Blanc Équivalent Ampoule Led Osram À Chaud R80 8nwO0kNPX;

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(observateurAchat Krypton 4water Étanche Pas Antichoc Torche Lampe Cher vw0ymN8nO) gist_trgm_ops);

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

SELECT * FROMBloomwin Encastré Encastrable X Spot 2800k 10 Led 5w Cob 2600 220v EW29DbeYHI saisie.saisie_observation WHERE md.Base As Gel Primer 15ml Off Top Coat Soak 8kwXn0OPliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

EnfantsBureau Décoration Façon CréativeÀ Pinbo De Des Son FilleLampe Petite ChevetCartoon Jolie BureauChambre sxChoQrdBt