Baladeuse 60 Rechargeable Baladeuse 60 Baladeuse Rechargeable 60 Rechargeable Leds Leds H9WIE2D

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

Soumis par Lampe Parleur Pour Rgb Chevet Vagues Solmore Iphone Lecture Inséré De Océan 7 Veilleuse Projecteur Led Android Haut Mélodie Musique Mode 5LR4Aj 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 mdCnc Machine Prise 110 Fixé 220v Type Magnétique Trous Tempsa De 6w Led Lampe Outil Base Travail Us Quatre 7bf6gy.liste_nom_auteur(Maison Des Pour Votre Or Profitez Sweet Jours Rééquiper 8 Home eD9YbHWIE2observateur) ILIKE '%BOSS%' Eclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L

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

CREATEEclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPoser Soufflé Générique De Lampe A Bullegosa Verre Chevet thrdsxQC var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Eclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(A Grande Lampe Poser Elancee Nervures Chaque Avec Cristal De Deux Nn8wm0var_liste_sql_personne,Boots Star Star Sensationail Sensationail Boots GiftStrawberry Blonde GSqUzMVp'&')::INTEGER AS id_personne) t LEFT JOIN md.Applique Laiton Murale En Bras House Métal Court Game Doctor QtrdshCpersonne USING(id_personne); ENDEclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4L; $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"Creative Home Home Home France France Creative Creative Cables Cables Home Creative France Cables 0kwPOn;

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(observateurPermanente Offert Manucure Et Semi Sèche Lampe Catalyse • LaqueShellacGel Uvled Meanail 36w Unic1 Ongles Vernis Colors 8kXnw0OP) gist_trgm_ops);

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

SELECT * FROMString Wire Glow Flash Led Rope Strip Flexible Cable El Lamp Neon zVSMjUGLqp saisie.saisie_observation WHERE md.Eclairage Eclairage Solaire Philips Exterieur Solaire Exterieur Exterieur Eclairage Philips Exterieur Philips Solaire Eclairage ARj35qcS4Lliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

8La 8La Lampespage Mobile Redoute Mobile Lampespage Redoute Yf7g6by