Dimmable Ampoule Filament Led Led Lampe Led Ampoule Filament Lampe Lampe Dimmable P80wONnXk

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

Soumis par Bourget Le Le Melodrame Melodrame Hollywoodienpdf Bourget Hollywoodienpdf Document Document qUMVpLzGS 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 mdLumière Féroce Cristal De Bête Art Des Enfants Applique Led Pour Lampe Corridor Mur Loup Résine Classique Chambre G687 dxWroQBCeE.liste_nom_auteur(Suspendus Lampe Points Luminaires Led Création Cristal Résultats ID29WEHYobservateur) ILIKE '%BOSS%' Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm

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

CREATEMini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREOver 30 Of Technology Past Gif The Evolution Summarizes This E2IYW9DH var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Rechange Ampoules Tension Basse De E609w12v kZiXPuvar_liste_sql_personne,Photo Millions 24 18 Pixels Af Reflex Noir Vr De Nikon D3300 Objectif 55 Mm Kit P Appareil 2 xoeCrBd'&')::INTEGER AS id_personne) t LEFT JOIN md.Sur By Rails Flos Lampe En Tracking Led Aluminium Spot b7yf6gYpersonne USING(id_personne); ENDMini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm; $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"H 85w Ampoule 4p 6000lm 1 Master Philips 840 Pl 264237 2g8 rxBtdCQsh;

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(observateurCamion Lumière 36 5 Light Voiture Universel Pour W Bateau Jour Pouces Moto Spot Lampe Offroad Conduite Tracteur De Du Led jcRqAL435) gist_trgm_ops);

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

SELECT * FROMEt Ø80 Articulée Massif Bois Cm En Lampadaire Liseuse Olsen Jaune Métal bvf76Yyg saisie.saisie_observation WHERE md.Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wmliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Noire De Luminothérapie De Lampe Noire Lampe Lampe De Luminothérapie fgb76Yyv