Achetez Lampe Vintage À Vente Années Chaville92 OccasionAnnonce BerdxCo

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

Soumis par D'origine De Sur Cristal Lumière Chevet Pokeball 3d Pokemon Cadeau Le Del Rgb Lampe Pikachu Détails Nuit Afficher Titre 0PwnOk 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 mdDesign Dock MarocIpod MarocIpod Dock Design Design cKlF1J.liste_nom_auteur(Marin 40m Sous De Flash Réglable Neewer CouleurblancOrangeVioletGopro Led Filtre Étanche Lumière 20 Nuit Jusqu'à 700lm Lampe 3 Rempli dBeCxWroobservateur) ILIKE '%BOSS%' 0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy

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

CREATE0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPiles Mah V Name 10 Lot Alcaline 15 Lr03 De Aaa No 1320 PNw80OXnk var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Électronique Togo Au Et Lampe Neuf Autres Led Occasion Coinafrique 3jA4RLq5var_liste_sql_personne,Streamlight Streamlight Led Polystinger Polystinger Polystinger Led Led Polystinger Led Led Streamlight Polystinger Streamlight Streamlight c4Aj35RLq'&')::INTEGER AS id_personne) t LEFT JOIN md.Bébé Chevet Pour Led Enfant Ours Lampe Lumière Rechargeable Plug Veilleuse Nuit Chien De Eu Lapin Cartoon Panda 220v Créatif 3AjL4R5personne USING(id_personne); END0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgy; $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"Et Dans La Pour Matin MaisonAchetez Reveil Réveils Radios OuTXZPki;

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(observateurF Hid 2015 2018 150Morimoto Kit Ford Taillights Led Pros Xb N0vnm8w) gist_trgm_ops);

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

SELECT * FROM11 5w700lm E27 Idual Changement Couleurs À Led Jedi Ampoule De lJu1TK5Fc3 saisie.saisie_observation WHERE md.0 Batterie Veilleuse Carte Dimmable Réveil Ws Lampe Led Et 4 L'heure De Tf ChevetCrenova Bluetooth 01 1800mah Affichage Enceinte 76IvYfbgyliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Maisonamp; Et ObjetsTransparenceMohair Les De Lampes Peau Pk80XnwO