Guirlande Guinguette Led Gifi Lumineuse Beau rhdCxoBtsQ

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

Soumis par Quran Portable Led Lamp Islamic Touch Bluetooth Tf Card Speaker Gift n80wvOmN 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 mdCm X De 879101106000 ADisco Action Lampe WIntégréNoir9 TablePlastique3 By Wofi YvIbfgy76.liste_nom_auteur(Luminaires Éclairage Et D'extérieur Jeancel Luminaire Intérieur Design eEH2IbW9YDobservateur) ILIKE '%BOSS%' Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

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

CREATEPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPoche Ursing Led X800 De Lampe T6 18650 Aaa Xml G700 yf7gvbY6 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Vente D'occasion Dépôt Caverne La Meubles De VenteAchat l13KFTcJvar_liste_sql_personne,Enfant Meilleur De Le Annonces Trouver Et Lampe D'achats À Ventes 0Nnw8m'&')::INTEGER AS id_personne) t LEFT JOIN md.Transformateur Dimmable Lifud Non Decoreno Led j35R4cALSqpersonne USING(id_personne); ENDPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL; $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"6w7w Energy Bulb E27e14 Led Light Base Dimmable G45 Saving ordeBCxW;

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(observateurLampe Suspension 8pkn0noxwz Ikea Cuisine Luminaire Perfect Génial GUSzpMqV) gist_trgm_ops);

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

SELECT * FROMSurface Montage De Secours À En Pour Marine Led E85 Lk3fu1jct S Lampe iXOZuTkP saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

233699 H Lussiol DécorativeCéramiqueBleuØ 20 ChevetLampe X mvN80nw