2010-11-13 5 views
2

est-il une alternative àQuelque chose de plus rapide que SELECT DISTINCT item FROM DB?

SELECT DISTINCT item FROM DB 

J'ai déjà essayé:

SELECT item FROM DB group by item 

la table n'est pas si grand (30.000 lignes), mais cette commande prend pour terminer près de 6 secondes. D'autre part, d'autres requêtes sont très rapides (0,2 seconde).

Que se passe-t-il? Suggestions?

D'ailleurs, voici comment je l'utilise dans mon programme:

BDD.addItems([r[0] for r in cursor.execute("SELECT DISTINCT commodity FROM DB")]) 

Répondre

9

assurez-vous qu'il est un index sur la colonne distincte

+0

0.1119 SECONDES! Je vous remercie! – relima

0

0.1 est une façon trop.

Vous ne devez pas utiliser distinct pour les requêtes critiques pour les ressources.
Vous devez normaliser votre base de données à la place, en stockant tous les éléments dans un tableau séparé, en ne laissant que des liens vers eux dans la table d'origine.

Et comptez ces éléments de cette autre table. Correctement indexé, il faudra moins de 0,01

Questions connexes