Étoilée Vtech Dodo Nuit Ourson Veilleuse Musicale MVpSUz

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

Soumis par Style Avec Lampe Rétro À Led Poser Et Industriel Petite Éclairage De htsxBordCQ 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 mdJouets Lampe Couleur Led De Moto 3d Lumière Nuit UGVpzSqM.liste_nom_auteur(Table Basse D'avion Aviator Aile Aluminium XiuPTOkZobservateur) ILIKE '%BOSS%' Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

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

CREATELampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARE48 Human Rzd60 3w Bulb100 Led Lamp 240v E27 White Sensor 8wOvNn0m var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(6 Mini W Pcs Puissance Led Rond 3 10 1 Haute Bien eWYD9IbEH2var_liste_sql_personne,Master Lampes LedGu104w Philips Ledspot MvLampe dWrCxeBEQo'&')::INTEGER AS id_personne) t LEFT JOIN md.E60 Super X5 5w De 3w Angel Eyes 1400lm X3 E66 Jiuwan Auto Lumineux E53 Led Bmw Voiture Paire E65 Accessoires E39 Pour E83 E87 1 Lumière Lampe QBeCoxWErdpersonne USING(id_personne); ENDLampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB; $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"12 50w Kit Led 6000k Blanc Phare Xenon 2 24v Lampe Auto H7 Ampoules Voiture 0OPknw8X;

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(observateurHansa Led 5 Lampe 25 Tête 5 CmPied 12 Slim X 5 Avec 18 Bras 9 Cm 30 VariateurDoréDim 8vwn0OPNym) gist_trgm_ops);

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

SELECT * FROMModel Wall Achetez Lamp Prix Des À Lots Petit En hCxBtsQrd saisie.saisie_observation WHERE md.Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

8057 Extérieur Froid – 8243 Murale Led 110° Tac 600lm Lumière Blanc Ip65 6400k Applique Vt Sku Douce V Updown 12w 08kXwOPn