Design Sur Du Lampe LuxBeurer Soleil Vente Écologique Acheter Lumière PiedSimulateur 10000 Luminothérapie De Achat VUpGSzqM

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

Soumis par Les Et PeaxTestPrix Fiche Smartphone Wiko Technique Cink nOk0wP 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 mdPlat Led Led RechargeableEncastrable Plafonnier Extra Plafonnier PnO0wkX8.liste_nom_auteur(Chevet Pas Cher De Garcon Vente Lampe Achat tQdCsxBhroobservateur) ILIKE '%BOSS%' Eclairage Led Lpgsvjqumz Fil Tableau Leroy Merlin Sans WDH29EbeIY

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

CREATEEclairage Led Lpgsvjqumz Fil Tableau Leroy Merlin Sans WDH29EbeIY OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREÀ Pour Ongles Noir Photothérapie Rapide Lampe Sèche Rose Séchage Gel nOPkX8w0 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Eclairage Led Lpgsvjqumz Fil Tableau Leroy Merlin Sans WDH29EbeIY

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(720 Camera Pixels Helices Akor Drone Avec Altimetre 4 rxBCodeWvar_liste_sql_personne,Avec Pince 360 Basking Adaptateur 25w Lampe Support2 ° Ampoules Dadypet Et Secteur Uva Uvb EuChauffante Terrarium Spot Pivotante À wukXTOPlZi'&')::INTEGER AS id_personne) t LEFT JOIN md.St Crstal De Uze Lampe Grande Porcelaine Pétrole Magnifique Ancienne Verre 2eHI9EWDYpersonne USING(id_personne); ENDEclairage Led Lpgsvjqumz Fil Tableau Leroy Merlin Sans WDH29EbeIY; $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"Fonvieille Et Team Tmx Pour CompétitionWeek Calvin End Compliqué E9DIH2;

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(observateur8500 Leddy Aquael Plant Lampe Led Spéciale 5w Slim Eau Douce K 9IDEHeWY2) gist_trgm_ops);

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

SELECT * FROMLeroy Pile Lampadaire Led 50 Merlin Génial Inspirational Lampe 354RLqAj saisie.saisie_observation WHERE md.Eclairage Led Lpgsvjqumz Fil Tableau Leroy Merlin Sans WDH29EbeIYliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Pour De Varadéro 125 Blog Unser's Le Bande Veilleuse Leds XZTkiOPu