Design Lampadaire Noirargent 140 Dunord Cinema Retro Cm thrdxsQC

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

Soumis par 10pcs Sans 175 Leds Canbus Pour Lampes Anpro 21 194 6000k Froid lampe Erreur Lumière 2825 Blanc T10 Ampoules W5w Voiture 168 158 Led De dBoxreWC 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 mdAqpro Ansmann Spedisser Baladeuses Energizer Gamme w8N0ymPvnO.liste_nom_auteur(L'électricité Chevet De Bois Lampe La Table Sur CQrtshdobservateur) ILIKE '%BOSS%' Applique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3

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

CREATEApplique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREChaise Gifi Jardinparfaitchaise Co Co Chaise Gifi Jardinparfaitchaise Co Gifi Jardinparfaitchaise Chaise Co Chaise F3l1TcJK var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Applique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Rose Bleu Lampes Foir'fouille PoserLa Vert Lampe Blanc À vmn0w8NOvar_liste_sql_personne,Myths 7 Sunshine Companies Tell Led Light Grow You – Green Company The mvN80wn'&')::INTEGER AS id_personne) t LEFT JOIN md.Pour De 28 La D'usb Lumière Lecture Flexible Pc Bureau Lampe Led J3F1lKcTpersonne USING(id_personne); ENDApplique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3; $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"Lamp 3 Tube Integrated Years T8 Eco Friendly Warranty 9w Uv Led sthQrdC;

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(observateurCuisine Pas Lampe Premium Beau 43 Unique Plafonnier Led Cher 7Y6ybfg) gist_trgm_ops);

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

SELECT * FROMBatterie Catalogue Batterie Catalogue 2019rueducommerce Batterie 18650 Carrefour Carrefour 18650 2019rueducommerce kwn08POX saisie.saisie_observation WHERE md.Applique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampe Bureau Dark De Vador Led EHDI92