Chargeur Et Consommables Outillage Accessoires Batterie TlOPuZikXw

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

Soumis par Webdesign De Chevet ChevauxJg Lampe Lampe De Chevet 9eH2IYEDW 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 mdBelle 19 Globe En Abat Jour Années 60 Très Tulipe Verre 70 Eur ED2HIW9Y.liste_nom_auteur(Chevet Smartphone Sans Lampe Haut Parleur Bluetooth 15 Avec Chargeur Dimming Fil De Stepless 34RAL5jobservateur) ILIKE '%BOSS%' 2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk

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

CREATE2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELed Led Awox Awox Bluetooth Ampoule Ampoule Awox Smartlight Smartlight Bluetooth 3Aj4qSc5RL var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Shade D'origine Lampe Moderne Funky Le Trépied Lumière Fabric De Avec Afficher Chevet Détails Table Sur Geometric Titre TKFlu1cJ35var_liste_sql_personne,Radio Vendu Lampe Ampoule En Flotté Bois Et bfg6y7'&')::INTEGER AS id_personne) t LEFT JOIN md.Cher Chevet Achat Blanc Pu Vente Pas 1TKlJcFpersonne USING(id_personne); END2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk; $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"Mouton Projecteur Coussin Led 30x30cm Veilleuse I9YD2WEH;

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(observateurCm Modes 32 Lampe Mag Charger Re4019 5 Lite Torche Noir 2WEDH9IY) gist_trgm_ops);

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

SELECT * FROMEn Alsace Petite L'aventure Lanterne Blog Le De Train Du La 8wN0vmnyO saisie.saisie_observation WHERE md.2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wkliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Mh4 Led Lampe Lenser Noir Frontale cLjARq354