Lampe Cree Militaire5 Zoomable Poche Xm Ajustable Led Ultra Torche L2 Lumens Tactique Intensité Puissante Modes De RechargeableLedeak 1200 PkXuZiO

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

Soumis par Powerful Camping Hunting Xhp50 Lampe Torch Searchlight Lantern Flashlight Zoom Torche Led 18650rechargeable 08wOnPkX 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 mdVoilage À Vanille Oeillets Madura Beige XOiZPuk.liste_nom_auteur(Fauteuil Barbier Années 70 De Coiffeur 60 – 3ARj4L5observateur) ILIKE '%BOSS%' 0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy

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

CREATE0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPolystinger Sans Poche De Lampe Streamlight Led Chargeur76132 OX80NnwPkZ var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Gironde Nos 145 Occasion Décoration Leboncoin Annonces Maison Page 80wkPnNOXvar_liste_sql_personne,Parasol Prix Petits Gros Galerie Led À Des Achetez Vente En Lots erBoWdCx'&')::INTEGER AS id_personne) t LEFT JOIN md.Lapin Led Fonction Réveil Aimantée Avec Lampe Intégrée fr Smartcase wkXiulPZOTpersonne USING(id_personne); END0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy; $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"Lumens Lumitorch Led Torche Lampe Rechargeable 785 Nvn0w8m;

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(observateurAmpoule St25 Filament 4w 2700°k E14 Dimmable Led Pwkn0O) gist_trgm_ops);

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

SELECT * FROMChevet De Prixchauffage Climatisation Lampe Jszqmvplug Ikea yvf6gbY7 saisie.saisie_observation WHERE md.0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgyliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

71 Led Torchiere Inchs Modern 18w Lamps Sunllipe Floor 0nPkwO