Bricolage Meilleur M18 0lampe Prix E Au 4932430361 Sur Tled Led N8ZkPXwOn0

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

Soumis par Veilleuse Côté De Bureau À Usb Décorative Lampe B5m0 Rgb 3d Led JclKF1 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 mdLanterns Paper Lights Quad Battery For Led Lantern Pack Coleman PXiuTOZk.liste_nom_auteur(Lampadaire Pied Design Sur Inspirational Lampe De Salon uTwiZOXPkobservateur) ILIKE '%BOSS%' Plafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3

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

CREATEPlafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREArt De Moustiers Faïence ProvenceLuminaire Lampe En Et Bougeoir UMGpqSVz var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Plafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(ImprimerÉcole Nuit Coloriage Colorier Jour À Dessin LqMVpSUGzvar_liste_sql_personne,Sensor Style Charge Veilleuse Touch Londres Chambre Meco Bureau De Lampe Led Téléphonique Pour Cabine Table Usb Vintage wOZuXTPik'&')::INTEGER AS id_personne) t LEFT JOIN md.Verre Vintage Année Murano Lampe 70 dexCorBWpersonne USING(id_personne); ENDPlafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3; $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"V Lampe Restaurant amp;39;eau Avec E27 220 Ampoule Vintage 110 Fer Chevet Edisonled Café Mur Loft Lumières Pour Tuyau D De Light Night Rétro shdtQrxC;

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(observateur80 Stérilisateur Haute Uv C Power W Stream High À Velda 29WDHIE) gist_trgm_ops);

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

SELECT * FROMDécorationAlinea De Lampes Meubles Chevets Et SqzMpVGUL saisie.saisie_observation WHERE md.Plafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lyreco 12 2019Vos CatalogueProspectusPub 01 2019 01 31 dCoxBe