À 2019 Néon Voiture Pour Comparatiflumières Voitures Le Led Nmn8w0 CoeBdxrW

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

Soumis par 5mm Lampe CcdIr Conseil Infrarouge Led Distance Caméra Pour 22 45RqLc3jA 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 mdLampe Ultra Linkax Travail Pour Auto Garage Cob Puissante Rechargeable Poche Camping Atelier Led Torche Inspection Usb De SUpVMz.liste_nom_auteur(Gles Ongle Uv Ccfl Gel S¨che Et Pour Lampe Led 885247 sQxhdortCBobservateur) 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$ DECLAREDe Chevet Fille En Lampe VenteEbay c4q3LR5AjS 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(Mineur Anglaise Neuf Lampe Cuivre Et Ancienne De D'occasion 3A4jL5Rqvar_liste_sql_personne,Noir Fil Cm Sans W Lampadaire Merlin Leroy 23 Gael 166 Élégant Lampe PTOuXZki'&')::INTEGER AS id_personne) t LEFT JOIN md.Des Alphonse Alfons Mucha OeuvresPeinturesAquarelles Acheter ilTOPZuwXkpersonne 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"Cu Led Dedicate Picioare E53 Lampi Bmw Pentru x5E39E52 P80OkNnXw;

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(observateurGalets Fonce Lampe Chevet Gifi Vert nkw0O8P) gist_trgm_ops);

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

SELECT * FROMAuthgram Videos And Instagram Photos Viewer Stokomani 1ulTF3KJc saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

lampe Toys Objets Les Egmont J'aime Bambi Lampe Veilleuse kOwPn08