Bonjour,

Je suis en train de créer une base sous PostgreSQL 8.2 dans laquelle je stocke des séquence d'ADN, dont la longueur maximum est de 13 000 caractères environ.

Je voudrais sélectionner les séquences communes d'une table temporaire avec ma table de séquences.

Pour ceci, j'ai créé un index pour les séquences de chacune des tables :

target_sequence
idtarget_sequence SERIAL,
sequence TEXT

CREATE INDEX sequence_indx ON target_sequence(sequence);

targettmp
seq_ TEXT

CREATE INDEX seq_indx ON targettmp(seq_);

Je tente la commande :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
EXPLAIN select sequence, seq_ from targettmp, target_sequence where sequence = seq_
Et voici le résultat de l'EXPLAIN :



Apparement les index ne sont pas utilisés, les 2 tables ont 7 000 000 d'entrées chacune, si le parcourt est séquentiellement, la requête sera impossible.

Pourriez-vous m'aiguiller là-dessus ?

En vous remerciant,

C. Tobini