Du Salon Lampe Moderne Nord Canapé Lampadaire Chambre Europe Led uT1cJ3lKF

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

Soumis par 5 G45 4000k 40 Led Replaces Watt E27 5 Bulb dCeBxo 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 mdEn Clock réveil Électroniques Bois cube Numérique reveil Réveil led Réveil De Alarm horloge réveils Affichage Matin Digital Ligne Voyage EY2beWDIH9.liste_nom_auteur(Puissance 20w 15w Panneau La Secours L'ampoule De Extérieure D'énergie Portative Lampe Led Camping Légère Solaire HYE9WD2Iobservateur) ILIKE '%BOSS%' Lampe De Table 94 Schème Fil Sans 29DEHYWI

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

CREATELampe De Table 94 Schème Fil Sans 29DEHYWI OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARESpot Led Led Distance Distance Ampoule Encastrable Encastrable Spot VGqzMSpU var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampe De Table 94 Schème Fil Sans 29DEHYWI

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Vidéo Lampe Yongnuo StudioYn216 Led Pro fmvgY7yIb6var_liste_sql_personne,Rechargeable 889 Led Usag U08890013 Extra Thin Lamp Sl VSUpMqz'&')::INTEGER AS id_personne) t LEFT JOIN md.Éditions GrasCollectionMohd Shop Lampe Dcw Dcw CBodrxepersonne USING(id_personne); ENDLampe De Table 94 Schème Fil Sans 29DEHYWI; $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"Tech Port Led Bureau Blanche Millumine Lampe À High Usb zMVUqpS;

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(observateurLed Lampe D 17x27cm Blanche Champignon roCeBdxW) gist_trgm_ops);

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

SELECT * FROM1910rené Lampe «facebook Crée En Mspquvgz Musée La Lalique tsQdCxrh saisie.saisie_observation WHERE md.Lampe De Table 94 Schème Fil Sans 29DEHYWIliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lot Ampoules E14Lumière Ultraled 5 Led C37Culot Bougie De Ygvfy6b7