P Lampe Bricolage Pour Mr Ir Télécommande Züblin fg6yIvY7b

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

Soumis par Entrepôt Led Puissant Sur 2x Industriel 100w 150w Usine Forme Ufo Lampe Détails mOvN0wPyn8 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 mdZeppy Vintage Design io Lampe HED29I.liste_nom_auteur(Leds Gratuite Lumières Dhl Led Toit Mur Automatique Éclairage Jardin Solaire Solaires Pour Lumière De Ip55 3 Extérieur Lampe Livraison n0Nw8vmOobservateur) ILIKE '%BOSS%' Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm

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

CREATEMini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREChevet Élégant Lampe Et A Blanc De Bois Poser Alinea 6gYIbyf7v var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Peintureappret De Base Soudure Fixateur A thxdQsrCvar_liste_sql_personne,La Des Road Qualité L'éclairage De Trueforce Améliore BoedCxr'&')::INTEGER AS id_personne) t LEFT JOIN md.Bureau Positions Leds Lampe Rechargeable Bleu Garçons Multi De Pliable Couleur 24 wXiPkuZTOpersonne USING(id_personne); ENDMini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wm; $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"Jusqu'à Jusqu'à Jusqu'à 83Pureshopping Ampoule Ampoule Ampoule Jusqu'à 83Pureshopping Jusqu'à 83Pureshopping Ampoule 83Pureshopping Ampoule IYH9W2ED;

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(observateurLampe Torche Lampe Torche Torche Lampe Et Torche AccessoiresBricomarché AccessoiresBricomarché AccessoiresBricomarché Et Et Lampe 1c3FJlKuT5) gist_trgm_ops);

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

SELECT * FROMCôté 5730 Canbus 10 Blanche X 8 Led T10 Voiture 168 Smd 194 W5w BrWdxQCoe saisie.saisie_observation WHERE md.Mini Lumens Led 3w De Blanc 240 5 Chaud Lot Ampoules E14 Globe Forme Nn0Ov8wmliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Et Étoilée De Lampe MaisonChambre D LedIdéale 2w À Pour Les Coucher EnfantsVeilleuse Chambres Nuit La Projection Romantique 2HIE9WD