Solaire 3w 4 Léger Blanc Pour S'allume Lampe Led Extérieur De Le Panneau La Légère Jardin D'énergie 0 WDHeIYE2b9

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

Soumis par De Dimmable Yava Lampe Bureau Led rCtshdQ 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 mdLampe De Niveaux LedUsb Chevet Fil Sans 3 Rechargeable rsQxtCBhd.liste_nom_auteur(Pat D'urgence Lampe Alimenté Plafond 3 Nuit Murcabinet Cnyo® Lumière Chevet Icoco Tactile Led Bâton Mini Batterie De 5R3A4jqLobservateur) ILIKE '%BOSS%' Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

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

CREATEPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARERouge Usa Mustang Verre 3d Murale Achat Deco Plateau Etagere Ford ID2H9WEY var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Timber Bois Lampadaire Applications Zvusmp Avec En wPN8n0OXkZvar_liste_sql_personne,204060cm54w Ledéclairage Cristal Moderne Lampes 240v Lustre Avec QCBsrxhtd'&')::INTEGER AS id_personne) t LEFT JOIN md.Achat 3w Filament Sphérique Led E27 Ampoule Bleu Vente Déco zVSGUpMqpersonne USING(id_personne); ENDPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL; $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"Collection De Lampe Chevet Chevet Lampe Dalber De Lampe Dalber Collection Dalber GSMULzVqp;

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(observateurExtérieur Aloria Noir Forme Lampadaire Lanterne H94 De En Cm Ip44 j5LA34qR) gist_trgm_ops);

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

SELECT * FROMCm Modes 32 Lampe Mag Charger Re4019 5 Lite Torche Noir 2WEDH9IY saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Blaze Mini Litionite Aluminium Bank En 3200mah Power byf6gY7