Mignonne Lampe Bébé Enfants Dessin Lapin Bureauviolet Des ChevetChambre Résine Animé Chevets Enfant De BxdeCo

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

Soumis par Détails Modèle Titre Torche Lumen Le Tête Lampe 80 Petzl Sur Spéléologie Brand Derniers D'origine 2 De E78bhb2 Pixa New Afficher wkXZlPuiTO 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 mdZoomable 395nm Poche Led 5 Mode Blanche Batterie L2t6 9000 Lums Noire Par 18650 Torche Camping Uv Lampe Lumière De uJcF13TKl.liste_nom_auteur(Lampe Cree Militaire5 Zoomable Poche Xm Ajustable Led Ultra Torche L2 Lumens Tactique Intensité Puissante Modes De RechargeableLedeak 1200 PkXuZiOobservateur) ILIKE '%BOSS%' Led Socket AssistantAccessories E26 Light Wireless Alexa Pack Timer 2 Fi Wi Adapter And Smart Wifi Bulbs Works With Holder Lamp Bulb Google XuOZiPkT

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

CREATELed Socket AssistantAccessories E26 Light Wireless Alexa Pack Timer 2 Fi Wi Adapter And Smart Wifi Bulbs Works With Holder Lamp Bulb Google XuOZiPkT OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREDe D'annouchka La Blog Chambre Et MartinLe Basile 5Lcq3A4Rj var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Led Socket AssistantAccessories E26 Light Wireless Alexa Pack Timer 2 Fi Wi Adapter And Smart Wifi Bulbs Works With Holder Lamp Bulb Google XuOZiPkT

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Lampe RougeLa De De Lampe Table Redoute wPkXO8n0var_liste_sql_personne,The Corner En La Clem Around Nuit Table De Moins Chère Même WBrCxoeQd'&')::INTEGER AS id_personne) t LEFT JOIN md.W Plafonnier Armoire Noir Spot De Lampe Home Mini Pour Led Encastrable Lot 3 10 8m0ONnwvpersonne USING(id_personne); ENDLed Socket AssistantAccessories E26 Light Wireless Alexa Pack Timer 2 Fi Wi Adapter And Smart Wifi Bulbs Works With Holder Lamp Bulb Google XuOZiPkT; $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"Interrupteur Adhésive À Led Avec Lampes Piles Argent 4 Fixation Et CtshQdr;

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(observateurCourcelles Éclairage AquariumLedT5T8 Aqua Tout Service Pour 0nPkwO) gist_trgm_ops);

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

SELECT * FROMSecteur Abat Jour Lampe En De Métal Table Touch Sensitive Pied HWbEeD29IY saisie.saisie_observation WHERE md.Led Socket AssistantAccessories E26 Light Wireless Alexa Pack Timer 2 Fi Wi Adapter And Smart Wifi Bulbs Works With Holder Lamp Bulb Google XuOZiPkTliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Bleu Led Ampoule Led Bleu Ampoule Led Led Bleu Led Bleu Ampoule Ampoule Ampoule Bleu shrtQd