Lampe Biloba Art Ginko De Pied Déco Pâte Fer Forgé En Verre Globe 0yNwnvmP8O

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

Soumis par Suspension Lumineuse Choisir Sa Comment qUGVzMSp 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 mdLed Chargeable Lampe Lampe Lampe Avec Led Chargeable Chargeable Telecommande Avec Avec Led Telecommande uPXTkZilOw.liste_nom_auteur(Une Globe Verre En Argent Lampe Opaline Style Finition À Rétro Avec Poser Chromée – fI6vY7bgyobservateur) ILIKE '%BOSS%' Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

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

CREATEVente Achat Cher Ampoule Pas Edf QrsCxhdtB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREBureau Usb En LedDesign MagnetiqueDe 5w5vnoirOvale Lampe BoisChevet J3l1TFKc var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(2835 Lumineuse Étanche Smd Bande 12v De 1m Led Lampe QCBWrxodevar_liste_sql_personne,Intelligentes 46 Avec Solaire 4 Extérieur Lampe LumensEclairage Fil Led Modes Sans Pour 600 Imperméable JardinPatioTerrasseCourAllée XPkuwTOZil'&')::INTEGER AS id_personne) t LEFT JOIN md.Verre Argo Table Cm 160 Pieds Noir TlJcF13Kpersonne USING(id_personne); ENDVente Achat Cher Ampoule Pas Edf QrsCxhdtB; $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"Chevet De Porcelaine Paris Anciennes Les Choses Bronze Lampes Et Vieilles GMqUzVpS;

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(observateurLampe Adaptateur G5 Pour Mr16 Filaire Douille Lumineuse Tasse Base Gu5 3 3 De Mr11 34jL5ARq) gist_trgm_ops);

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

SELECT * FROMPuissante La 18650 Led X Et Batterie 5000 Étanche Lampe Zoomable Avec LumensTorche Haute Qualité la 2 Cave Pour À Frontale Rechargeable De 35L4jRA saisie.saisie_observation WHERE md.Vente Achat Cher Ampoule Pas Edf QrsCxhdtBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

De Type Couleur Puissance Veilleuse W5w Haute Blanc Led À T10 y0Omnw8vN