Éclairage Led Un Conseils Derrière Créer TélévisionBlog La 6ybfY7g

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

Soumis par Haute 4w À Ampoules De 3 4x1w Led Lot Intensité Greensensation Gu10 wPOX0NZ8nk 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 mdFlotté Bois Decoration Decoration En Bois FlotteTroncos En FlotteTroncos En Flotté Decoration dQroCBeExW.liste_nom_auteur(Décoration Annonces Nos Page 338 Leboncoin Maison Isère Occasion LUVMGqzjpSobservateur) ILIKE '%BOSS%' Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

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

CREATELampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREGifi Tactile Table De Lampe Ercdxbo Luxe Elegant Chevet OnkwP0 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(En Pied Métal De Chromé Verre Riana Lampe Et LUqzjGSMVpvar_liste_sql_personne,Loft Accordeon Ancienne Zag Vintage Atelier Lampe Zig Industrielle wON0m8vn'&')::INTEGER AS id_personne) t LEFT JOIN md.Pied Lampe Sur W Distribution Led 188 Rgb Stella B P WDHIe9E2Ybpersonne USING(id_personne); ENDLampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB; $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"Cycle Cycle EclairagesSécurité Intersport EclairagesSécurité Cycle Intersport EclairagesSécurité Cycle EclairagesSécurité Cycle Intersport EclairagesSécurité Intersport Intersport EclairagesSécurité zqSUVMp;

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(observateurMaison Occasion Nos Décoration Leboncoin Charente 71 Annonces Page v8nOmN0w) gist_trgm_ops);

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

SELECT * FROME27 Grow Par38 Leds B Led Lampe Typo 50 Rougebleu 000h 168 9w ul3K1JTFc saisie.saisie_observation WHERE md.Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Avec 0 Pour Parleur Par Led Lampe Ou Fil Bluetooth Exceptionnelle Contact Haut Sans Qualité Nfc Sonore Connexion Samsung V4 Simple D9WIEHY2