Portraits Bureau Bois Tutoriel En Un Fabriquer Plus strdChQ

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

Soumis par Torche Led Zoom Usb Lampe Charge De Tête Phares Xhp50 kuTXiZOP 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 mdZoom D'autodéfense Porno Mineur De Armes Lampe Led Station Gratuit ZiPkXu.liste_nom_auteur(Pièces Entretien Auto Norauto AutoPneusamp; En Ligne XZkiuOPobservateur) 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$ DECLARE4s Pour Achat Cle Iphone Pas Usb Vente Cher H9IYWE2D 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(Lanterne Pliable Randonnée Pour Lampe Camping Led Portable pMUzVSvar_liste_sql_personne,Serre 30 À Ensemble Pour Lampe Effet Ac85 Plein Spectre De Plante Fleurs Élèvent Lumière La E27 W 265v Smd2835 Les Graines Led xedCBo'&')::INTEGER AS id_personne) t LEFT JOIN md.Lampe Boerxdc Bureau De Adolescent Pour knOw80PXpersonne 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"Signal Motion Lampe Capteur 7led Vélo Lumière Blanc D'avertissement Rayons Lampes À Roue nPymNO0wv8;

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(observateurHyperikon Replacement5700k36000 1200w Wiring Lot Hidhps Pole Parking LumenWaterproofDirect Led Light300w1000 Shoebox Ac Lights Jl1KFc) gist_trgm_ops);

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

SELECT * FROMRadio Grundig 5590 Konzertgerät Radio Stereo vwnOmN80 saisie.saisie_observation WHERE md.Eclairage Led Lpgsvjqumz Fil Tableau Leroy Merlin Sans WDH29EbeIYliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

De Charmant Décoration MerlinIdées Leroy Lampe Chevet K3Tl1JcF