Vous êtes ici : Accueil Documentation Doc Technique openElec et PostgreSQL Optimisation requêtes électeur

Optimisation requêtes électeur

Optimisation de recherche textuelle sous PostgreSQL.

La base de données PostgreSQL ne permet pas en standard d'utiliser les index traditionnels pour chercher des parties de texte.

Par exemple :

SELECT * 
FROM electeur
WHERE nom = 'DUBOIS';

utilisera un index standard sur le nom alors que

SELECT *
FROM electeur
WHERE nom ilike 'DUBOI%'

va parcourir toute la table electeur.


Pour que notre recherche utilise les index, il faut créer un index précisant que le champ nom fera partie de recherches avancées sur du texte :

CREATE INDEX electeur_nom_text_pattern_ops ON electeur USING btree (nom text_pattern_ops);

permet de créer un index optimisé pour les recherches avancées sur du texte.


Les écarts de performances obtenus sur la base de données sont de l'ordre de 95% sur une base de 200 000 électeurs !

Actions sur le document