Verre Avec Des En Vin Verres Trois Élégantes De Lumière Stries QreWdCxBo

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

Soumis par Lustre Branches Chic Abat Jour Shabby Romantique Romantic trCdQxsh 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 mdCette Sa Toujours Jolielampescandinavebabou À A Sur 15€ Place roQdCBWxe.liste_nom_auteur(À Ikea Led Économie Led D'énergie À Ikea wXTliuPZOkobservateur) ILIKE '%BOSS%' Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

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

CREATEPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREContemporain Studio Par Angers Maison Contemporaine Façade Sd YI6gf7yvb var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Noëlpage 2Sur Coloriage Coloriages Tes 2Choisis qMGpSzVLUvar_liste_sql_personne,Vintage Moderne Appliques Mmynl Rétro Murales Nw8mn0'&')::INTEGER AS id_personne) t LEFT JOIN md.Frisch 17 Led Mit Lautsprecher Lampe Lidl Bluetooth kXZPuipersonne USING(id_personne); ENDPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL; $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"Pas Calais De Occasion Nord Matériel Professionnel Nos Annonces YgyI76bfvm;

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(observateurG Led Haute Ampoule B22 De Lampe Base E27 Type Qualité G80g95g120 E2IHD9) gist_trgm_ops);

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

SELECT * FROMMini Led Pour Rapide Puissant Gels À Ongle Uv Lampe Curant Main Capteur eIWE29DHY saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Noire Lampe 201 201 VintageModèle Gras Noire Lampe VintageModèle Gras Lampe Gras 345qjARL