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

pq
 2007-10-26 13:18
#101375 #101375
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
bloonix+2007-10-26 09:03:54--
pq+2007-10-25 14:18:46--
sieht gut aus? wenn die db knapp 1 mio zeilen durchsuchen muss?

wenn die db 1 mio zeilen durchsucht hätte, dann hätte sie nicht
den index benutzt sondern einen full table scan durchgeführt ;-)

was willst du damit sagen? der output von EXPLAIN sagt eindeutig, dass der index
benutzt wurde, und trotzdem knapp 1mio zeilen durchsucht werden mussten, eben weil
es kein index auf channel allein war, sondern ein kombinierter index. dass mysql dann
gleich einen table scan hätte machen können, ist eine andere frage.

hier nochmal der output:
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 | index | NULL | irclog_day_channel_idx | 124 | NULL | 920939 | Using index; Using temporary |
+----+-------------+--------+-------+---------------+------------------------+---------+------+--------+------------------------------+
1 row in set (0.00 sec)

rows: 920939 heisst nun mal, dass 920939 zeilen durchsucht werden.
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

View full thread SELECT DISTINCT(...) beschleunigen