Thread SELECT DISTINCT(...) beschleunigen
(12 answers)
Opened by moritz at 2007-10-24 23:45
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? |