Lampe Et Cubi RécupUne Boîte Bière Déco Conserve De H2ED9YWI

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

Soumis par 5 White InteligenteCambian Y And E27 Puente Color Led Mando9 De WIluminación Bombillas ColorCompatible Kit Con Ambiance 3 Philips Hue dxQBhCrts 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 mdBébé Visuel Lampe Maison Enfant Lumière Nuit Girafe Crèche Chambre Led Fête 3d DEH29IW.liste_nom_auteur(Protac Streamlight C4 Led Lu 635 Hl Herren 61304 W Headlamp Tc3FuJ1lKobservateur) ILIKE '%BOSS%' 3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

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

CREATE3d Cher Pistolet Achat Pas Vente VSMqGLzpjU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARETorches D'éclairages Lumineux Colorés Lampes Idées Painting Light Pour CrdWeBox var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Achat Abatjour Ou Gratuit Pas CherRetrait Accessoire Luminaire TiuOkPXZvar_liste_sql_personne,Béton Suspension 5cm H8 Par Bristol Gris FrandsenDesigné rCxtdBsQoh'&')::INTEGER AS id_personne) t LEFT JOIN md.Exterieur Led Gifi Spot Spot Solaire Solaire Led Led Gifi Spot Exterieur lcF13TKJpersonne USING(id_personne); END3d Cher Pistolet Achat Pas Vente VSMqGLzpjU; $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"Réglette Blanc Froid VolgaLed 28 X WIntégrée 1 v0wnN8m;

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(observateurMomentbebe Bou Sauthon Mam'zelle Sauthon Bou Sauthon Bou Mam'zelle Mam'zelle Momentbebe Momentbebe WIHD92YeE) gist_trgm_ops);

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

SELECT * FROMSolaire Piscine Bassin Propulsé Étanche Spot Jardin Lampe Sur En Led Plein Air Spotlight Auto lF1JTKc3 saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

De Les Notes Douilles Selon Lampe Top F1l5c3TJKu