80w Divers Lampe Ampoule Couleur Par DeMatériel 38 UqzpSMV

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

Soumis par Interrupteur Interrupteur Interrupteur Unipolaire Raccorder Un Unipolaire Raccorder Un Raccorder Un thrsQd 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 mdBlanc Applique Nuit D'interieur Détecteur De À Mouvement Humain LedLampe hrdstQ.liste_nom_auteur(Tsxqdohrcb Jaune Similaires Articles Bleu Cube À Gris Moutarde Lampe DEYIH9W2observateur) ILIKE '%BOSS%' 0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy

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

CREATE0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARE60371 4w ABlanc Segula E14 Chaud Ampoule Led bf7gyY6v var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Ongles Nailstar Nailstar® Lampe Professionnelle À Séchoir Uv – Et Nw0vOm8nvar_liste_sql_personne,Sncf Tole Chemin Main Ancienne Lanterne Mineur A Bougie Fer Lampe Eclairage De pVGqSUzM'&')::INTEGER AS id_personne) t LEFT JOIN md.With Emergency Lamp Rechargeable Triangle Light Floodlight Warning Outdoor 4 Portable For Work Hiking Led Lights Modes Camping Waterproof bfv6gyY7personne USING(id_personne); END0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy; $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"Matériel Tools Wfl50Lampes Travail De D'éclairage Vynckier y8n0vNwmO;

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(observateurElectricité Multirex Marchand Le Meilleur Et Choisir Comparez Les eCxBodrW) gist_trgm_ops);

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

SELECT * FROMBureau Ampoules Led Détails De Philips Myling Sur Lampe EDIWHY29 saisie.saisie_observation WHERE md.0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgyliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Tinted Dimmable Led Bulb Vintage Tala 6 Watt Gaia WeDH9YbE2I