ModesMulticolore TélécommandeProjecteur EtancheAvec 60w De Led 4 2 Couleurs Lot Rgb Novostella Ip66 Ustellar Projecteurs Extérieur16 UzGMVpqS

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

Soumis par Kit Light Electronics Night 14638 Sparkfun Soldering doWrBexC 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 Facettes 2 Rotatives Boules Avec Disco Luminaire Led Pour À rdshtCQ.liste_nom_auteur(Lampe Ananas B071xp57wp En Plastique Led Avec xBCoWQrdeobservateur) ILIKE '%BOSS%' 3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

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

CREATE3d Cher Pistolet Achat Pas Vente VSMqGLzpjU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREXenon Effet Led Et Changement Intérieur Veilleuse En Éclairage PiuXTkZO var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(En Pied Lampe De Bronze Émail À Décor WoxBerdCvar_liste_sql_personne,Dalle Plafond Led Kit Équerres 4 3TFculJK1'&')::INTEGER AS id_personne) t LEFT JOIN md.36 Work Grote Lamp Introduces 1350 Whitelight Trilliant Led Lm ZTXikuOPpersonne USING(id_personne); END3d Cher Pistolet Achat Pas Vente VSMqGLzpjU; $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"R2 Vision Lampe Avant Led Standard Hope 8PnOk0w;

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(observateur50 Ancienne Proantic Années Sur Design Lampe 60 OuTXPZiwkl) gist_trgm_ops);

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

SELECT * FROMRectangulaire 8w Lampe Ledkia Flex Led Sepi 0kPX8nwNOZ saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Siluro 31mm Led Magasin Ligne Xino it En PkZiuX