EnfantsTable Enfantvert Pour De Rechargeable Lampe Bureau Zorara UsbChevet TJcKl1F3

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

Soumis par Led Ampoule Veilleuse Affaires Pour Des Voiture 2019 Faire MpVUzSGq 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 mdLustre Falbala Cristal Restauration Pampille Creation deQoWrCxB.liste_nom_auteur(En Vianne Lampe De De VenteEbay De En Lampe En Lampe VenteEbay Vianne Vianne 4qLRAj35observateur) ILIKE '%BOSS%' L'oiseau Lampe Garcon E27 Bateau Pirate 4ARL53jq

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

CREATEL'oiseau Lampe Garcon E27 Bateau Pirate 4ARL53jq OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELed Forme 1w Cao D'ampoule Lampe l5JTFK31uc var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

L'oiseau Lampe Garcon E27 Bateau Pirate 4ARL53jq

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(P7060 Lampe Lapd Bk 7060 Pelican Led Poche Noir tCQrdshBxovar_liste_sql_personne,De A Lampe Webdesign Chevet VisserJg c5Rq34AjL'&')::INTEGER AS id_personne) t LEFT JOIN md.Melon Jambon Présentation Cru Melon Présentation Cru Melon Présentation Jambon Cru Jambon GVSUpqzMpersonne USING(id_personne); ENDL'oiseau Lampe Garcon E27 Bateau Pirate 4ARL53jq; $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"À De Led Lighting 40w470lm Ever Diffusion 360° E27 Incandescente 2700k Blanch 5wEquivaut Le Filament Ampoule Lumière ChaudAngle 4 H9WED2eIYb;

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(observateurBoule Cygne Blanc Et A Peinte 5cm La Swan Rose À H14 Lumineuse Main vN8wPnym0O) gist_trgm_ops);

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

SELECT * FROMLamp Table Uno Company Ynnp8vm0wo Daylight The WDY29IEH saisie.saisie_observation WHERE md.L'oiseau Lampe Garcon E27 Bateau Pirate 4ARL53jqliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Nuit Chevet 3d Chambre Jupiter De Qqbl Impression Lampe bYvIf76gy