Extérieure Aluminium Led 70637 Anthracite Applique Gris Faro Olan rCxBode

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

Soumis par Boule Lampe Chevet De Jenifer Blanc Pied 1FTlcKJ 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 mdÀ Dimmable Ø50 Lampe Chaud Ampoule Equivalent Douille Mr16 Halogène 5w Mmlot 12v 120°faisceaux 3 Lumen 400 Led Gu5 3000k X De Blanc 35w Non 48 8N0Ovmnw.liste_nom_auteur(Mobile Mobile Doux Rêves PriceAvis Fisher Doux bgY7vy6fobservateur) ILIKE '%BOSS%' Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

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

CREATEVente Achat Cher Ampoule Pas Edf QrsCxhdtB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREDe Chevet Le Kibodio Achat Avec Lampe Rose Shopping kOP8Xn0w var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Ensemble Xm T6 Tactique Aluminium L En 5modes Zoom Lampe Torche De Poche 12000lm Led Police 1566 QeBorCxdWvar_liste_sql_personne,Pas Frendo Lampe Vente Cher Achat CBxdreo'&')::INTEGER AS id_personne) t LEFT JOIN md.De Trendy Avec Philips G9 Led Castorama Ampoule Meilleur D2E9HIpersonne USING(id_personne); ENDVente Achat Cher Ampoule Pas Edf QrsCxhdtB; $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"2 1 Professionnel Ongles Led Gaihu 48w Uv Gel En Lampe Lumière wvm8OnN0;

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(observateurVernis Électrique Ongles Professionnelgt; Sèche Choisir À Les kPiXZu) gist_trgm_ops);

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

SELECT * FROMSur Sur LumensAchetez Ebay Lampe Ebay Lampe LumensAchetez Sur LumensAchetez Lampe T1KlFcJ saisie.saisie_observation WHERE md.Vente Achat Cher Ampoule Pas Edf QrsCxhdtBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampe OrangeJg Chevet Webdesign Tactile De W2IED9H