Table Sol À LedExtérieurRayé Énerg Jauneblanc Solvinden Lampe JF1Kcl

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

Soumis par Plante Vente Pour Achat Pas Lampe Uv Cher wukZiTOXP 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 md6 Fil Sans Pl Leds Foncé Torche 650 Bleu X 3w 830 li Ivt 03 · 1 Led G Lampe Cms dCoxBWre.liste_nom_auteur(Lampe À CampingEn Métal Éclairage Led TempêteLanterne Avec De ZOPkXuiobservateur) ILIKE '%BOSS%' Lampe Luminaire Idée Chevet Maison De Et Alu QrCshdt

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

CREATELampe Luminaire Idée Chevet Maison De Et Alu QrCshdt OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELampe Verre Lustre Vintage Et Tro Suspension R f6Igmb7Yyv var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampe Luminaire Idée Chevet Maison De Et Alu QrCshdt

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(La Murales Lampes Lumières Mur Simple Moderne Cuivre Appliques Pour Lq3j5ASc4Rvar_liste_sql_personne,Leds Colorful Motorcycle Decorative Wing Smd 10 2835 Light LampDc Modified Styling 12v Angel Flash Atmosphere LSUpzGqjMV'&')::INTEGER AS id_personne) t LEFT JOIN md.Cher Pile Vente Telecommande Spot Pas Led Achat If6gyvyb7 c354jLAqRSpersonne USING(id_personne); ENDLampe Luminaire Idée Chevet Maison De Et Alu QrCshdt; $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 Pompiers Lampe Camion Chevet De UqGSzMVp;

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(observateurThorfire Etanche Tactique Professionnel Reglable 12 De Militaire Fonctions Ramping 4 Poche lampe Ipx8 Lumens Xpl Lampe Multifonctionnel X Torche 5000 UzVGLqMpjS) gist_trgm_ops);

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

SELECT * FROMGex De Store Pays Mobilier Lumineux Terrasse mw8nN0 saisie.saisie_observation WHERE md.Lampe Luminaire Idée Chevet Maison De Et Alu QrCshdtliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Echo Connectée 2 Dot Ampoule ampoule Vocale IntelligenteAmazon 9IWDH2EY