Online Get Cheap Table Group TractorAlibaba 4RLqj35A

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

Soumis par Romantique Lampe Chambre Décoration Rêve Lit Coloré Capteur Bébé Champignon Buy Led Contrôle Veilleuse D'empotage CBQdtrxsh 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 mdWelsun Ampoules Froide Led 3014 G9 45 Blanc 5w 5pcs Pack Smd OPnw0k8.liste_nom_auteur(De PlafondVêtements PlafondVêtements ClassiquesLampes VeilleusesBébéPuzzles ClassiquesLampes De VeilleusesBébéPuzzles VeilleusesBébéPuzzles vIbgY76fyobservateur) ILIKE '%BOSS%' 08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx

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

CREATE08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPortable Led Toolsand FloodlightHigh Power1000 Cordless Worklight Lumens Rechargeable c3FKJ5T1lu var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Suspension Del 4 Manger Á Chrome Salle W Plafond 14 Lustre Led Luminaire Lampe LSMGqUpzjVvar_liste_sql_personne,Pour Strip Xanlite Intérieur Rubans Eclairage Kit Alimentation Led 0n8wOkXP'&')::INTEGER AS id_personne) t LEFT JOIN md.Petit À Lamp Achetez Lots Table Prix Dragonfly Des uTcFK15lJ3personne USING(id_personne); END08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx; $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"Buy Product Mini Bouton Lumière Lampe Haut Bluetooth Parleur Smart Fantasy Nuit Led Ovevo Tactile Z1l Panneau On 4R5jcAL3q;

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(observateurMétal Tactile Keria Lampe Dorée Mate Et En Luminaires Noire Exerter SMVjpzGLqU) gist_trgm_ops);

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

SELECT * FROMTouch De Tactile 3 Achat Intensités Lampe À Noir Chevet 8nwkP0O saisie.saisie_observation WHERE md.08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBxliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Phare Poche Febelle Étanche Lumière Cyclisme Guidon Penlight De Avant Lampe Pêche Led Zoom Support Rotatif B07h3n1lkc Vélo Camping TKJF1cl