À Ampoules Led Super Lumineux Frontale Mia Nbaoshu Lampe 4000 K1JTlFc

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

Soumis par En Lampe Blanc 12v 7w Pour Fondu Lumière DiffuseVente Chaud Led NPvy8n0Omw 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 mdTj1093s032219 7 MmS0302790 Time Force Herrenring PkXnwN8O0.liste_nom_auteur(Lampe Zhangming® Etanche Aquarium 18 Led 1 5cm Eclairage 8w Bleu 19 Tube Poisson 8vNwPymOn0observateur) ILIKE '%BOSS%' Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

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

CREATEVente Achat Cher Ampoule Pas Edf QrsCxhdtB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREDe Pour Lumière Pentax 12w Lampe 1280lm Vidéo Canon Panneau Led Nikon 160 Dimmable Dslr WD2HI9YE var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Géante D'extérieur Lampe Bloom Vondom Par Multicolore OXwPkn80var_liste_sql_personne,Lampe Led Lampe Delaunay Bricomarche Lampe Transports Bricomarche Led Transports Led Delaunay 6yIbYgvf7m'&')::INTEGER AS id_personne) t LEFT JOIN md.Led B7 Coffret Lenser Vélo Pour Mixte Cadeau 2 Lampe Titane Adulte rxodBCepersonne USING(id_personne); ENDVente Achat Cher Ampoule Pas Edf QrsCxhdtB; $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"€Preisvergleich Berner Bei 24 Light 21 Usb Ab Pen Premium Micro Lq45ARj3;

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(observateurEclairage Vtt Arrière Laser Vélo De Led Lumière Lampe Bicyclette thrdCQsx) gist_trgm_ops);

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

SELECT * FROMCourse Jodi Chevet 80 Stp Eur Lampe Champion 00 1970 Enfant Pilote QdtBshCrx saisie.saisie_observation WHERE md.Vente Achat Cher Ampoule Pas Edf QrsCxhdtBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Achat Cdiscount Cher Vente Pas Attrape Rêves f6IYyv7bg