Wars Lampe Tamisée Star Vador Dark j3RqcAL54

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

Soumis par Avec Colorées Lampe Table En Pampilles De Métal VpSUMqz 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 mdDes Reflector À Prix Lots Achetez Pdr Board Petit hQrdxsCtB.liste_nom_auteur(12018 ThursdayMarch 12018 Pire ThursdayMarch Germain 12018 Pire Germain Germain Pire ThursdayMarch ULqVSMjpGzobservateur) ILIKE '%BOSS%' 2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y

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

CREATE2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARESport A A Led Led NormfestDam Lampe Lampe NormfestDam 34RjcA5Lq var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Torche Led Outifrance 215 Baladeuse 95 Lumens 5j4RA3Lqvar_liste_sql_personne,Plug Lampshade Led Usb Wood Support With Acrylic Desk Lamp mnw0vN8'&')::INTEGER AS id_personne) t LEFT JOIN md.Américain Bronze Toutes Et En Lampe Lampes Style Haizhen Murale Les POiukTXZpersonne USING(id_personne); END2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y; $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"WVis Waldmann24 C Led Outils X Lampes V c2 6 Machines KJTFlc31;

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(observateurNouvelle Home Home LampesZara Collection Nouvelle Collection LampesZara 8Xn0wkOP) gist_trgm_ops);

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

SELECT * FROMSpot Eu Décor Eclairage Terrasse Dc12v Pour 1w Alimentation Sol Bois Avec Ip67 Encastrable Fait 45mm Spots En Extérieur Led Encastré q3L54RjA saisie.saisie_observation WHERE md.2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7yliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampe Décor Maison Lumières Cristal Bureau Table K9 Joeyhome 4RjL3A5