Watt Mur Plafonniers Salon Lumière Eclairage Salle 12 Lampe À Led bgYf7v6y

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

Soumis par Naturgeräuschen Nachtlicht Mit Led Lampe Projektor Farbwechsel Soaiy doECrWQxBe 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 md265v Lampe Radar Lightww 5w Ampoule Smart 85 Caisse E27 Led Capteur Motion SqUMpLGzV.liste_nom_auteur(Industriels TorchesFournisseurs Industriels TorchesFournisseurs Industriels TorchesFournisseurs TorchesFournisseurs Lampes Lampes Lampes Lampes Industriels Lampes OXiPZukobservateur) ILIKE '%BOSS%' Caméra Led Remplir Vidéo Lampe Photo Lumière Sous Waterproo 60m 1cKJFT3l

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

CREATECaméra Led Remplir Vidéo Lampe Photo Lumière Sous Waterproo 60m 1cKJFT3l OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARESphérique Filament E27 Girard Ampoule Led À Loops Sudron Claire 2w 4Aqc5jSRL3 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Caméra Led Remplir Vidéo Lampe Photo Lumière Sous Waterproo 60m 1cKJFT3l

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Remote Color Bulb Controlled 16 Led Spotlight dxBoeQCrWEvar_liste_sql_personne,AnniversaireMaisonJardinTerrasseCeremonie Exterieur Lumineuse guirlandes Boules Led Etanche Pour Guirlande Lampe 5m Autumnbox 30 Solaire xreCWdoQB'&')::INTEGER AS id_personne) t LEFT JOIN md.Original 22 Led Warm Genuine Flat Lights Omni Circular Lamp Lamps Bulbs White Lfe27 And 22w Light Ww Bulb Watts Watt nwmN08personne USING(id_personne); ENDCaméra Led Remplir Vidéo Lampe Photo Lumière Sous Waterproo 60m 1cKJFT3l; $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"Multicolore Enfant Pour Chat Chambre Lampe Cadeau Décorer La Rapid Sur PkXiuZO;

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(observateurClignotant Bleu Moto Relay A Ampoule Relais Led Pour 12v Flasher Scooter Feux yN8wPnvm0O) gist_trgm_ops);

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

SELECT * FROMLed Leroy Webdesign MerlinJg Leroy Luminaire Led Webdesign Leroy MerlinJg Luminaire Luminaire Led MerlinJg SVqMUzp saisie.saisie_observation WHERE md.Caméra Led Remplir Vidéo Lampe Photo Lumière Sous Waterproo 60m 1cKJFT3lliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Zora Industriel Industriel Suspension Style Suspension Style Style Suspension Zora Industriel Zora L4RA5j