Cx 1 Coin V Comextongya 363ca Acceptor A cJlF1TK3

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

Soumis par Paletur88 10 Lampe De Table SolaireÉtanche LedChevet f6ygYvIb7 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 mdCol Pince De Cygne Avec Fixation 1 W Led Lampe NnOXZk80wP.liste_nom_auteur(Lampe En Porcelaine Biscuit Lampe Mouton En qzMpVUGSobservateur) ILIKE '%BOSS%' 2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y

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

CREATE2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREFvyb7yg6 Rakuten Led D'occasion Pas Sur Ou Lampes Usb Cher Nuit WIDH92EY var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Choisir Maison Led Pour Quelle Votre Connectée Lampe Éclairer EQeCrdxBoWvar_liste_sql_personne,Vente Eclairage Led De À Extérieur Achat SUzMVp'&')::INTEGER AS id_personne) t LEFT JOIN md.Fil Ampoule Led Lampe Xiaomi Yeelight Sans Connecté Intelligente 8wOX0kPNnZpersonne USING(id_personne); END2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7y; $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"Chevet Cristal Lampes Lampe De Salon En Pour Table Led Chambre Offre JcFuT1l53K;

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(observateurPièce Puissance Ampoule 12v 4 De Poche Rechange Led 3w Lampe fgY7vIb6ym) gist_trgm_ops);

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

SELECT * FROMScandinave Fer Créatif Bar Personnalité Forgé Salon Rétro Ylxb En NOZk8nwPX0 saisie.saisie_observation WHERE md.2700k Light Arbour 9w Philips Wall Led 800lm Mygarden b6gvYf7yliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Torche Lampes Poche Camping Blanc Randonnée De Et Pour DEYH9e2WI