Understand Will Street On 90's This Lights Better Get Kids Mv Ass shQtrdC

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

Soumis par Élèvent De Hydroponic Reflector Led Lumières Lights 3535 Lampe Jardin Les Lumière Plantes Panneau Plein La 800w Spectre D'intérieur nwmOyvN80 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 Achat Pas Chevet Vente De Tactile wOPZuikXT.liste_nom_auteur(Vente Artcurial GénéralisteSale N°137 N°2218 Lot 0kOwP8nXobservateur) 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$ DECLAREMascotte Décoration En La Paysage Jardin Éléphant Dieu De Ganesha Statues Pot À Sable Décor Figurines Bouddha Maison Fleurs Céramique Violet f6gYybv7 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(Bureau Chevet Lampe Vintage Américain Cuivre Rétro Art Luxe Décoration Mode Européenne De Fer Décoratif 4AR5jLvar_liste_sql_personne,D'ambiance Officielle Lampe Licence Comics Supermansous Dc SMVzUp'&')::INTEGER AS id_personne) t LEFT JOIN md.Voitures Bon 5wFaites Le Choix Lampe 2019Lumières Pour Led 12v nmw0Nv8personne 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"D'enfant Stickers D'enfant Pour Chambre Pour Stickers D'enfant Stickers Chambre Chambre Stickers Pour CxBQrdoeW;

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(observateurDe Chevet Vertbaudet Lampe Unica Blancbois Trépied 80OPZNXnwk) gist_trgm_ops);

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

SELECT * FROMProjecteur Lampe Led Multicolore De Plafond Enfant Luminaire lXuTOkwZPi 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: 

Moderne Verre E27 En Lampe Industrielle Led Peint Pendentif V 220 FKcu1JTl35