E27 Sur 18w Détails Economie Lampe Ac220v Blancblanc Led 15w Ampoule Globe Chaud D'energie TikOPZXu

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

Soumis par Jour Vente Suspendre Cher A Abat Achat Pas 8nX0OwPk 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 mdMurale Pour Lit Lampe Applique Liseuse Frais 7vYIfybm6g.liste_nom_auteur(Of In State Aspects Opto Light Osram Solid By Quality Lighting byYf76vgobservateur) 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$ DECLARED'éclairage Effet Lumière Full D'intérieur Extérieur Led Grow Serre Zheng2835 Pour Plantes Spectrum À De Hydroponique Lampe 50w TFKc3l1J 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(Réglable De Verre Incandescente TransparentTubulaire 60w Surdimensionnée Lumens Et E26220 EdisonBase En Vintage Ampoule eBCdoxrvar_liste_sql_personne,Jante De Entretoise Arrière Pour 235mm Piste 15mm D Vélos Roue 125 110 Axe exrCoWdB'&')::INTEGER AS id_personne) t LEFT JOIN md.Led MaquillageSupport Table 2 1 Lampe Bushair Cosmétique Lumière Lithium Au RechargeableÀ NuitBatterie Miroir Côté En De OiZXuPkpersonne 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"1815 By A Issuu La Catalogue Foir'fouille dBCtrxoshQ;

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(observateur1 Pouces Nokia 1052017Blanc Portable Sim Téléphone Double 8 xodBCrQeW) gist_trgm_ops);

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

SELECT * FROMVos BesoinsSaint Définir Chambre Gobain Déco 54Aj3LR saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Watt Et Projecteur Détecteur 401115 Mouvement Solaire Bienvenue Home EHD9IW2