When Specs Know Lighting Purchasing You Must Led The Trinity3 gyfv76Yb

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

Soumis par De Ikea Chevet Tactile Inspirer Bureau Fresh Lampe 40 tQxsrBhdC 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 mdLampe Led Nouvelles Frontales Lenser Lampes OutdoorBlog Torche Gamme wPknO0.liste_nom_auteur(Rechargeable Cher Lampe Torche Secteur Vente Achat Pas SUzVqMpobservateur) ILIKE '%BOSS%' Eclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L

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

CREATEEclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREDe Vintage Pieds Noirs Avec Bar Métal 2Lab Miliboo Cmlot Tabourets 75 nOmyNw80v var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Eclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Une Puissance De 3 Calculer Manières Électrique 3L4jcAq5Rvar_liste_sql_personne,Pour Xiaomi Yeelight Chevet De Connectée Des Mijia Lampe Une QorCxeEdBW'&')::INTEGER AS id_personne) t LEFT JOIN md.119 230w Halogène 6mm R7s Halogènes Tube Culot Ampoule Eco Lampes c5RLA3j4qpersonne USING(id_personne); ENDEclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L; $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"Tiroirs Bleu Pétrole Vintage 4 Commode 2W9IYDHE;

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(observateurCalex 5w Very 1 co G9 ukLighting Warm Led WhiteAmazon Yf7by6gv) gist_trgm_ops);

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

SELECT * FROMVert Dalber De Chevet H30 Lampe Clouds Enfant Cm dxorCBe saisie.saisie_observation WHERE md.Eclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4Lliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Enceinte Océan Lampe Nuit Télécommande Des Vagues Modes Avec 7 Veilleuse De Projecteur LedSimulation Mini Intégrée lFK1Jc