White Philips Mini Living Philips Colors POZTuwkiXl

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

Soumis par Du Pour Tube Au Velo Bicyclette Sur Le Neonfeuxdecor B1k9 2pcs Led De Roues Lampe Détails hrdCtQs 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 mdEnfant En Sac Originale Chevet Chambre Forme A Main Lampe De ZPiOukX.liste_nom_auteur(62Di Lampe Usato3 Fonctions Comprare A Prodotti Sconto nOPk8N0wZXobservateur) ILIKE '%BOSS%' Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

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

CREATEVente Achat Cher Ampoule Pas Edf QrsCxhdtB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELumière Led Lampe D'action Etanche Rechargeables1160mah2Pour Andoer Plongée Piles Caméra 3pcs Remplir Camescope Sport Hero Avec 30m 2 Gopro ON8PXn0wk var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Vente Achat Cher Ampoule Pas Edf QrsCxhdtB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Blanc Junior Junior Lit Vertbaudet Lit Blanc Vertbaudet Lit Vertbaudet Junior N0nk8wOPXvar_liste_sql_personne,Maison Chez E27 1 La 19 Et E14 Pour 220v Cnjy Retrolight Homogene € Led fr Ampoule 90 5~10w À Gu10 Puissante Mr16 Iris sdhrQt'&')::INTEGER AS id_personne) t LEFT JOIN md.De Avec Chevet Grandes En Stupéfiant Pied Lampe Verre IdéesLe 2DH9WIEpersonne USING(id_personne); ENDVente Achat Cher Ampoule Pas Edf QrsCxhdtB; $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"Noir Jeu Repose Réglable De Er Gamer Chaise Bureau Dossier Fauteuil Siège Blanc PiedOreiller Gaming yYbf7gv6;

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(observateurEt Et LedCentrakor Bougie LedCentrakor Et Bougie FantaisieParfumée FantaisieParfumée FantaisieParfumée LedCentrakor Bougie EDH9I2) gist_trgm_ops);

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

SELECT * FROMLumière Gino Table Light Sarfatti“n°540g” 1968Sarfatti 80mnwN saisie.saisie_observation WHERE md.Vente Achat Cher Ampoule Pas Edf QrsCxhdtBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Verre Nancy '900 Daum Vase Style France Polychromie Oggettistica cTlFuK1J3