EXPLAIN frage

EXPLAIN frage

am 19.12.2005 20:25:24 von Jan Prieser

Hallo zusammen,

ich hab mal wieder ein Problem.
Es geht um diese Abfrage:
explain SELECT channel, c.username, userid
FROM chat_users c
LEFT JOIN user u ON ( c.username =3D u.username )
ORDER BY c.username

chat_users ist hierbei recht klein (0-30 zeilen) und hat keine indizes.
user ist relativ gross (>400k) und hat einen index auf username.

explain liefert mir nicht reproduzierbar zwei unterschiedliche
ergebnisse.
einmal:


+----+-------------+-------+------+---------------+----------+---------+---=
------------------+------+----------------+
| id | select_type | table | type | possible_keys | key | key_len
| ref | rows | Extra |
+----+-------------+-------+------+---------------+----------+---------+---=
------------------+------+----------------+
| 1 | SIMPLE | c | ALL | NULL | NULL | NULL
| NULL | 15 | Using filesort |
| 1 | SIMPLE | u | ref | username | username | 50
| hotornot.c.username | 1 | |
+----+-------------+-------+------+---------------+----------+---------+---=
------------------+------+----------------+


und zum anderen:

+----+-------------+-------+------+---------------+------+---------+------+=
--------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len |
ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+=
--------+---------------------------------+
| 1 | SIMPLE | c | ALL | NULL | NULL | NULL |
NULL | 15 | Using temporary; Using filesort |
| 1 | SIMPLE | u | ALL | username | NULL | NULL |
NULL | 321623 | |
+----+-------------+-------+------+---------------+------+---------+------+=
--------+---------------------------------+


das ganze auf einem Mysql 5.0.15 Server

wenn ich das explain mehrmals hintereinander ausführe, kommt mal das
eine, mal das andere ergebnis.
ich versteh hier aber nicht ganz, wieso er überhaupt im zweiten fall
den index nicht benutzt.

hat jemand einen denkanstoß für mich?

vielen dank,
jan prieser

Re: EXPLAIN frage

am 20.12.2005 00:29:14 von Hartmut Holzgraefe

prieser@gmail.com wrote:
> explain liefert mir nicht reproduzierbar zwei unterschiedliche
> ergebnisse.
..
> das ganze auf einem Mysql 5.0.15 Server
>=20
> wenn ich das explain mehrmals hintereinander ausführe, kommt mal das
> eine, mal das andere ergebnis.
> ich versteh hier aber nicht ganz, wieso er überhaupt im zweiten fall
> den index nicht benutzt.
>=20
> hat jemand einen denkanstoß für mich?

kannst du dazu bitte einen Bugreport auf bugs.mysql.com anlegen?
Am liebsten mit einem Dump der beiden Tabellen (als nicht-öffentlicher
Upload) ...

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

http://www.mysql.com/support/

Re: EXPLAIN frage

am 27.12.2005 00:55:48 von Jan Prieser

Hartmut Holzgraefe schrieb:


> kannst du dazu bitte einen Bugreport auf bugs.mysql.com anlegen?
> Am liebsten mit einem Dump der beiden Tabellen (als nicht-öffentlicher
> Upload) ...
>

ich hab version 5.0.17 installiert und dort scheint es nicht
aufzutreten.