Schrift
[thread]10656[/thread]

SELECT DISTINCT(...) beschleunigen (Seite 2)



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
moritz
 2007-10-26 13:24
#101376 #101376
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Danke für die vielen Anregungen.

Mit einem korrekt gesetzten Index habe ich die Query auf etwa 1.3 Sekunden beschleunigt, was nicht optimal aber gerade noch akzeptabel ist.

Der Rest des Performance-Tweakings mache ich mit caching ;-)

Auf eine zusätzliche Tabelle will ich gerne verzichten, da mir das den Aufwand nicht wert ist.

Update: habe nochmal nachgemessen, und die längste 'SELECT DISTINCT'-Query hat dieses mal nur 0.3s gedauert - also entweder ist mein Problem damit gelöst, oder die Datenbank hat etwas gecacht.

Code: (dl )
1
2
3
4
5
6
7
mysql> explain select distinct channel from irclog;
+----+-------------+--------+-------+---------------+-------------+---------+------+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+-------+---------------+-------------+---------+------+------+--------------------------+
| 1 | SIMPLE | irclog | range | NULL | channel_idx | 93 | NULL | 5 | Using index for group-by |
+----+-------------+--------+-------+---------------+-------------+---------+------+------+--------------------------+
1 row in set (0.00 sec)


Das "Using index for group-by" deutet eher auf gelöstes Problem hin ;)
pq
 2007-10-26 13:31
#101380 #101380
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
moritz+2007-10-26 11:24:27--
Das "Using index for group-by" deutet eher auf gelöstes Problem hin ;)

naja, eher das "rows: 5"
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
bloonix
 2007-10-26 13:38
#101383 #101383
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
pq+2007-10-26 11:18:36--
rows: 920939 heisst nun mal, dass 920939 zeilen durchsucht werden.

Nein, da liegst du falsch.

Quote
The rows column indicates the number of rows MySQL believes it must examine to execute the query.


Zwischen glauben und werden liegt ein Unterschied.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-10-24 23:45.