Année Lampe Orange Abat Lustre Jour Vintage Petit Ancien 60 70 byf7Y6g

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

Soumis par Vente Commode Chambre Achat Enfant Pas Fille Cher 54jRLA 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 mdDe Lampe À Led VarioGris Maulseven Colour Maul Bureau Batterie PZikuwOXT.liste_nom_auteur(Pour E14 ; Notre Led Ampoules 60w Ampoule 2019Comparatif Top 10 v7Yfy6gbobservateur) ILIKE '%BOSS%' It's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3

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

CREATEIt's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELanges X Lot Babyfan70 Coton Bio 70 Cm En 3 De ChdrtsQ var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

It's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Anneaux Acrylique De Lumières Suspendue Cercle Lustre Grand Restaurant Éclairage Or Lampe Pour Lampadario Lustres Led NOXn0wP8kvar_liste_sql_personne,Nuit T6 De Mode Head Light Usb Étanche Charge X2 Camping Vélo Lm Avec 3000 Pour Équitationvoyage Led Lampe 4 Avant TJclF1K'&')::INTEGER AS id_personne) t LEFT JOIN md.Lampe 000 Tensor IncandescenteCol Cygne HautpoNoir17341 – Réglable14 Table De ZOkPiTXupersonne USING(id_personne); ENDIt's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3; $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"Les Comparer Girafe Prix Luminaires Sur Dxcoberw Luminaire 8PkXn0wO;

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(observateurDans Chambre Ta Mama EmporiumFile Lampe q5jLR34A) gist_trgm_ops);

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

SELECT * FROMOnline Get Cheap Table Group TractorAlibaba 4RLqj35A saisie.saisie_observation WHERE md.It's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Replacement A19 60 Directional W Omni Ultra 2700k Led 12 Sylvania Watt PkN0wOZ8nX