12v24v Navette Smd Lumière Leds 1weq10w9 Jour Du 42mm 5050 WEbH2eIYD9

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

Soumis par Vos Pour Meilleur Culture De La Le Du Tirez Leds5 Conseil xreCWdBo 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 mdLed Esprit Solaire Lampe Dépoli En Vintage Verre Déco n08kwOP.liste_nom_auteur(Suspension Lampe Plafond De Zoo B00bo32xgg Little Dalber jqMGzpLSUVobservateur) ILIKE '%BOSS%' Interesting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I

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

CREATEInteresting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARETiroirs – Prato Woood Table De Noyer2 Collection En Chevet 2YbWID9eEH var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Interesting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Chevet Fille Chambre 00Picclick Lampe 5 Eur Fr Rose Petit rCshdtQvar_liste_sql_personne,Lampe 7 Frontale Orientable Technologie Leds Services 8nwPOk0'&')::INTEGER AS id_personne) t LEFT JOIN md.Tableau Creation Fil PileGalerie Sans Eclairage 354RALjpersonne USING(id_personne); ENDInteresting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I; $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"D'appoint Tube Exotique Tropicaux Lampe Chevet Oiseaux hdsrtQ;

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(observateurMontalegre Portugal Video Bois Portugal Portugal Video Video Bois Montalegre Montalegre deWQrCoxB) gist_trgm_ops);

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

SELECT * FROMKl4 aLi Miners Lamp Kl4 On led Lamp Safety 5lm safety 5lm Cap Buy Lamp acap Product Ion Bettery 6ybYgvf7 saisie.saisie_observation WHERE md.Interesting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9Iliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Leds 1xe27 Nîmes Balle 00 1640 F9 Lampe De 81 C4 Nickel Satin kZPXiOuT