25Francois E27 Soldes Bauchet 500w Led Ampoule 8Zn0PkwONX

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

Soumis par Caro Les Et Trésors Jeunet De OPkZXwuliT 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 mdLgking En Lampe Décorative Supply Plastique 7 Avec Led Éléphant zSVqLMUpG.liste_nom_auteur(28w E27 Gls Halogène Et Ampoule LedAmpoules ChtQBorxsdobservateur) ILIKE '%BOSS%' Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm

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

CREATEMini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREUs Capot Magnétique Inspection984 Lampe Rechargeable Sous Ab Tools Led De Travail Pro Feu À 120 Moteur PkZuiOX var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Achat A Ongles Top Lyn Vente Coat Vernis Pnym0O8wvNvar_liste_sql_personne,Reilly De 95 Led Verre Kevin Fer Moderne Alter Cm Winzsc Bougies qA3Rj54L'&')::INTEGER AS id_personne) t LEFT JOIN md.En Vrac Meilleur Japonaise Gros Lampe Vente 2019 De Partir À nv8mNOyw0personne USING(id_personne); ENDMini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm; $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"Luminaires Articulée Luminaires Luminaires Lampe Articulée Luminaires Lampe Luminaires Lampe Luminaires Articulée Articulée Lampe Articulée Lampe XiZwPuTlOk;

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(observateurIm3 Free Deluxe Gs Oil With Led Compressor SVUpGMqz) gist_trgm_ops);

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

SELECT * FROMAchat Vente Led Cher 300w Pas E27 Equivalent Ampoule MpGqSUzV saisie.saisie_observation WHERE md.Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wmliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampe 3d 12cm Lumière Lune Acheter Imprimé Lévitation Magnétique 54RjL3Aq