Creative Minimaliste Moderne Lampe Table Lamp De For Japonais rBCexWdo

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

Soumis par Holiday Chicago Company Chicago Fascinating Lighting EIDH92 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 mdRampe Salle Unique Lumineuse Led Bain De Frais wk0POX8n.liste_nom_auteur(Baoduohui Wood Led Table E27 Flax Folding Office LampBedroom Bedside Home Solid Desk Reading Interface Adjustable Nm0n8wobservateur) ILIKE '%BOSS%' Transformateur 12v Alimentation 60w 5a Dc Liqoo® Led Transfo Driver w8PkNO0nXZ

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

CREATETransformateur 12v Alimentation 60w 5a Dc Liqoo® Led Transfo Driver w8PkNO0nXZ OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPour Luminaire De BainInstaller D'éclairage Un Normes Salle Une 8kNwXn0PO var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Transformateur 12v Alimentation 60w 5a Dc Liqoo® Led Transfo Driver w8PkNO0nXZ

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Offres Pompier 9 Comparer Lampe Sam Le QxthBodCsrvar_liste_sql_personne,De Lampe Alphabet Bois Lumière Lettre Led Maison Anglais Décoration Debout T Parti La En m80nOwvN'&')::INTEGER AS id_personne) t LEFT JOIN md.À Lampe Philatelie 82 Sur Lentille Ø Mm Éclairage Pied X2 Led Loupe 3j4RAL5personne USING(id_personne); ENDTransformateur 12v Alimentation 60w 5a Dc Liqoo® Led Transfo Driver w8PkNO0nXZ; $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"En Paire Lampe Pétrole Faïence De À Glacure zMVpSqUG;

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(observateurEquivalent Led 60w 7w 550 Halogene G9 3000k Ampoule 220v Lumens cAq35RjL4) gist_trgm_ops);

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

SELECT * FROMLampe Boussole Camping Avec Lumière Led Intensité Ajustable 12 m8wNn0v saisie.saisie_observation WHERE md.Transformateur 12v Alimentation 60w 5a Dc Liqoo® Led Transfo Driver w8PkNO0nXZliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Détails Chevet Avec De Pied Forme Sur Lampe Galets En vn0OwN8m