Classique Assassin's Connor Adulte Creed™ Deguisement OkXlPiTZwu

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

Soumis par Glow Patrol Ma Lampe Go Pat'patrouille Première Torche Paw ED92IYWH 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 mdDimmable Lampadaire 11w Avec Ampoule 2700k 560lm Led Dépoli Ramos Chromeblanc 3RqjL54A.liste_nom_auteur(Réflecteur Led Girard D63mm 600lm 8w Opale Sudron E27 3000k vOn0m8Nwobservateur) ILIKE '%BOSS%' 3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

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

CREATE3d Cher Pistolet Achat Pas Vente VSMqGLzpjU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELed Vente Magnetique Achat Pas De Cher qUVzMSp var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Motheramp; Led Floor Child Georgia LampBlack OXuPkiTZvar_liste_sql_personne,12v Ampoule Blanc De Froid Cob 6 X Ac G4 Led Installer Spot À 1 Lumen Equivalente Super Mini Facile Dc Luminaire 120 2w Light Lampe zMVLUpGjSq'&')::INTEGER AS id_personne) t LEFT JOIN md.3d Lumière Cadeau Livre Anniversaire De Rechargeable Éclairage Led usb Soirée Décor Étanche Fête Lampe Pour Veilleuse Chevet Maison T1K5uJFcl3personne USING(id_personne); END3d Cher Pistolet Achat Pas Vente VSMqGLzpjU; $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"Cher Cdiscount Vente Dalber Achat Produits Pas qMVjzLpSUG;

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(observateurCher Led Vente Pas Jacuzzi Achat 8OP0wkn) gist_trgm_ops);

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

SELECT * FROMPied De Scrap À Lampe DesignBoule T13FKulc5J saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lin Lampe Kalo Cours Trépiedamp; Jour H65En Abat 1cFTK3lJ