2012-09-07 3 views
0

ma base de données MySQL a plus de 1 million d'enregistrements et se développe de plus en plus. J'ai une valeur 'aide' là-bas qui est parfois disponible plusieurs fois. Je veux compter l'aide.Nombre de SQL énorme quantité de données

J'ai essayé

SELECT COUNT (DISTINCT (value)) AS somevalue 
FROM table 

qui a travaillé, mais maintenant il y a tellement de valeurs qu'il faut plus que max_exec_time. J'ai aussi essayé la même chose avec GROUP BY sans succès.

Existe-t-il un moyen d'exécuter cette requête rapidement? Ou y a-t-il d'autres solutions?

Répondre

11

Faites de la valeur un indice! Le comptage d'un index est beaucoup plus rapide que le traitement des enregistrements dans une table.

+0

Je veux le nombre distinct de «valeur». Je ne veux pas savoir combien d'entrées il y a. Avez-vous une requête SQL pour moi qui va gérer cela? – bluewhile

+0

votre valeur était bien, ajoutez simplement l'index: 'ALTER TABLE \' table \ 'AJOUTER INDEX (\' value \ ')' ' – rubo77

-1

Attribuez simplement un ID à chaque ligne (ID, uto_increment) et prenez le dernier ID affecté.

Questions connexes