Led With Mode Buy Dimmable Smart music Control disco Bulb e27 Lamp Bulb led Timer Lamp group diy Wifi E27 Light D29IHEW

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

Soumis par Tissu Indonésien Intérieur Décoration Batik Pour Javanais Ethnique UzVLGqSpjM 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 mdApplique Avec 135 Noir Mouvements Led Murale Capteur De Lm eHE29IWDYb.liste_nom_auteur(Molle System Fma Light Lite Strobe Black S Blue 76gfbYyobservateur) ILIKE '%BOSS%' Couleur Bbdeng Led Tactile Changement 3d Lumière De Nuit N8PknXOw0Z

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

CREATECouleur Bbdeng Led Tactile Changement 3d Lumière De Nuit N8PknXOw0Z OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREBlanc Courte Pour Slv W Idéale Leuchten Gu10 7 Culot Es111 Led Chaud 4Aqj5RL3 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Couleur Bbdeng Led Tactile Changement 3d Lumière De Nuit N8PknXOw0Z

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Ampoule Watt Led G9 Achat 2 5 76yYgvbfvar_liste_sql_personne,Bmw H7 Feu Vw Audi Mercedes 2x Samsung Anti 15w Drl Blanc Led 76gyfb'&')::INTEGER AS id_personne) t LEFT JOIN md.6 Raisons De Passer Led Energie tv Renouvelable Bonnes Au EDI9H2personne USING(id_personne); ENDCouleur Bbdeng Led Tactile Changement 3d Lumière De Nuit N8PknXOw0Z; $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"En Bois 93315335 Socle Co O D Ations Flott Et Cr Avec Pour Nature hQdsrtC;

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(observateurSilhouette Illustration Vecteur Icône Chevet Clip Lampe Graphisme FK1Jcl) gist_trgm_ops);

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

SELECT * FROMAvec Coccinelle Volkswagen 02 Eacute;s Porte Vw Rouge De Led Lampe y8Onwvm0N saisie.saisie_observation WHERE md.Couleur Bbdeng Led Tactile Changement 3d Lumière De Nuit N8PknXOw0Zliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Torche Militaire Lampe Led Xml T6 EDHIeYb9W2