Thread SELECT DISTINCT(...) beschleunigen (12 answers)
Opened by moritz at 2007-10-24 23:45

moritz
 2007-10-24 23:45
#101293 #101293
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Ich habe eine Tabelle in einer Mysql(5.0)-DB, in der ich IRC-Logs speichere, und in jeder Zeile ist neben Text, nick, timestamp etc. auch der Tag als String gespeichert (weil ich die Logs tageweise darstelle) und der channel.

Wenn ich jetzt ein
Code: (dl )
SELECT DISTINCT(channel) FROM irclog;

oder
Code: (dl )
SELECT DISTINCT(day) FROM irclog;


mache, dauert das ziemlich lange (so 5..10 Sekunden), bei ca. 1Mio Spalten und <10 verschiedenen Channels und ~ 1k verschiedenen Tagen.

Ein Index über channel bzw. day hilft da auch kaum etwas.

Meine nächste Idee war ein View, der nur die verschiedenen Werte speichert:
Code: (dl )
CREATE VIEW irclog_channels AS SELECT DISTINCT(channel) FROM irclog;

Dummerweise ist dieser View aber leer.

Was mache ich falsch, und wie macht man es richtig?

View full thread SELECT DISTINCT(...) beschleunigen