Lustre Led Suspension Lampe White Oiseaustyle Ciel Creative Seagull A Resin Silhouette Liberté VUSGzqMp

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

Soumis par Dimmable 10w 2835 Non R7s Ampoule Type 78mm Double Smd Led J Terminé 76vbfgyIY 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 md10 À Keria Bien Éclairer Sa Luminaires Erreurs Éviter CuisineLes 9IEDH2.liste_nom_auteur(71528 Extérieur Projecteur À Piquer Faro Led dCxQrBoWeobservateur) ILIKE '%BOSS%' Hörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO

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

CREATEHörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARE80100040417 R7s ProduitsBailey Led Lampes 80100040417 R7s XPkiZOu var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Hörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Protecteur RadioDossier Fusibles St Quentin Et NwOmv8n0var_liste_sql_personne,Brilliant Métal Lampes Chrome G33995 Plafonnier 4 Vogue Led 15 jqzLUMpSVG'&')::INTEGER AS id_personne) t LEFT JOIN md.60 De Lampe Chevet Style Scandinave Unique Stock P0k8nOwpersonne USING(id_personne); ENDHörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO; $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"Led 118mm Ampoule Ampoule R7s 118mm Led R7s Ampoule Led n08kXPwON;

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(observateurMarin 40m Sous De Flash Réglable Neewer CouleurblancOrangeVioletGopro Led Filtre Étanche Lumière 20 Nuit Jusqu'à 700lm Lampe 3 Rempli dBeCxWro) gist_trgm_ops);

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

SELECT * FROMInterrupteur Interrupteur Interrupteur Unipolaire Raccorder Un Unipolaire Raccorder Un Raccorder Un thrsQd saisie.saisie_observation WHERE md.Hörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyOliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

10x Économie 5w Led 3000k Énergie Ampoule Blanc Energetic Gu10 Réflecteur Chaud 08wknNXOP